Window-Handle mit Hilfe von Prozessinformationen bekommen?



  • Hallo zusammen,

    mir ist leider keine bessere Überschrift für mein Problem eingefallen, sorry!
    Also ich suche zur Laufzeit meines Programms nach einem bestimmten Prozess (irgendein Internetbrowser, dessen Name (Exe-Dateiname) in einer Datei steht). Das mache ich folgendermaßen und es klappt auch:

    // alle laufenden Prozesse holen
    	HANDLE hSnapShot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0);
    
    	PROCESSENTRY32* processInfo = new PROCESSENTRY32;
    	processInfo->dwSize = sizeof ( PROCESSENTRY32);
    
    	while ( Process32Next ( hSnapShot,processInfo ) != FALSE)
    	{
    		name = processInfo->szExeFile;
    		ID = processInfo->th32ProcessID;
    
    		// der gesuchte Prozess?
    		if(name.CompareNoCase(internet_browser) == 0)
    		{
    	            // hier irgendeine Aktion
    		}
    	}
    
    	CloseHandle ( hSnapShot);
    
    	delete processInfo;
    

    Nun möchte ich, wenn ich einen Prozess mit dem richtigen Namen gefunden habe, überprüfen, ob es zu diesem Prozess ein nicht minimiertes, sichtbares Fenster gibt, um dieses ggf. zu schließen? Wie bekomme ich jetzt die Kurve von der Prozess-Information zum HANDLE des Fensters, damit ich die Eigenschaften minimiert/sichtbar usw. abfragen kann?

    Vielen Dank für eure Hilfe!
    Meike



  • Nochmal CreateToolhelp32Snapshot mit TH32CS_SNAPTHREAD flag, dann EnumThreadWindows für jeder thread, wenn THREADENTRY32.th32OwnerProcessID==dwProcessId.


Anmelden zum Antworten