Ich will einen Timer laufen lassen, der in regelmäßigen Abständen nach einem Programm sucht.
OK so schwer isses nicht... GetProcessesByName() z.b. oder ich benutze die gute alte WinAPI und guck nach Klassennamen und Fensterbeschriftung, bekomme so den Handle und weiß, dass das Proramm grade läuft.
Supi soweit easy.
Was ist aber mit Programmen, die static als Klasse nutzen (Information aus Spy++) und nicht mal ne Fensterbeschriftung haben?
OK mit GetProcessesByName funktioniert das ganze immer noch; aber nur solange, bis man die EXE, die es zu finden gilt, umbennent.
Dann nämlich steht im Taskmanager (Tab "Prozesse") anstatt AlterName.exe, NeuerName.exe und das Programm lässt sich nicht eindeutig identifizieren.
Unter dem Tab "Anwendungen" hingegen bleibt der Name unverändert.
Nur, wie komme ich in meinem Programm dadran? Sowas wie GetApplicationByName gibts nicht.
Hm kennt da jemand ne Lösung, wie man selbst Härtefall-Programme eindeutig detektieren kann?
Vielen Dank,
Myers
OK so schwer isses nicht... GetProcessesByName() z.b. oder ich benutze die gute alte WinAPI und guck nach Klassennamen und Fensterbeschriftung, bekomme so den Handle und weiß, dass das Proramm grade läuft.
Supi soweit easy.
Was ist aber mit Programmen, die static als Klasse nutzen (Information aus Spy++) und nicht mal ne Fensterbeschriftung haben?
OK mit GetProcessesByName funktioniert das ganze immer noch; aber nur solange, bis man die EXE, die es zu finden gilt, umbennent.
Dann nämlich steht im Taskmanager (Tab "Prozesse") anstatt AlterName.exe, NeuerName.exe und das Programm lässt sich nicht eindeutig identifizieren.
Unter dem Tab "Anwendungen" hingegen bleibt der Name unverändert.
Nur, wie komme ich in meinem Programm dadran? Sowas wie GetApplicationByName gibts nicht.

Hm kennt da jemand ne Lösung, wie man selbst Härtefall-Programme eindeutig detektieren kann?
Vielen Dank,
Myers