Programm detektieren

MyersGer

Mitglied
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
 
So:

Code:
System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcesses();

Hiermit kannst Du die Prozesse abfragen und nachschauen ob Deiner dabei ist.

Hoffe geholfen zu haben.

Chris
 
Nein hast mir leider nicht geholfen. Wie ich oben geschrieben habe, reicht es die exe-Datei einfach umzubennenen und schon heißt auch der Prozess anders.
Also geht es so nicht.
 
Hi,

wenn es Dein EIGENES Programm ist, kannst du mit einer Mutex arbeiten. Dann kannst du diese Info abfragen, ob es Deine Anwednung ist.

Falls Du ein fremdes Programm identifzieren willst, musst Du nen Hash bilden - so machen es die Virenhersteller ja auch. (Das leidige Problem von sich ändernden Programmen)

Schau:

Code:
// start der Anwendung die ueberwacht werden soll 
Mutex mutex = new Mutex(true, "MeinMutex"); 
  
// bei beenden wieder freigeben 
mutex.ReleaseMutex(); 
 
// in pollender Anwendung, wenn true dann laeuft das teil noch 
bool newMutexCreated;  
Mutex mutex = new Mutex(true, "MeinMutex", out newMutexCreated);

Chris
 
Hm ne, nicht meine Anwendung.
Aber das mit den Hashes hört sich interessant an.
Ich schaus mir gleich mal an. Meld mich wieder, wenn ich fragen hab.
 
Komme nicht so recht weiter mit den Hashes. Eigentlich müsste es doch ein eindeutiger Wert sein. Allerdings bekomme ich sich ändernde Werte heraus. *grübel*


edit: aah hab doch schon ne lösung.
trotzdem thx
 
Zuletzt bearbeitet:
Zurück