Abrufen des Hauptfenster-Handles von der Prozess-ID mit EnumWindows()
In verschiedenen Szenarien ist es notwendig, das mit verknüpfte Hauptfenster-Handle abzurufen eine bestimmte Prozess-ID. Dadurch können Sie das Verhalten des Fensters manipulieren, indem Sie es beispielsweise in den Vordergrund bringen oder mit seinen Steuerelementen interagieren.
Ähnlich wie beim Ansatz des .NET-Frameworks können Sie die Funktion EnumWindows() nutzen, um dies zu erreichen . So können Sie es implementieren:
Implementierung in C/C:
struct handle_data { unsigned long process_id; HWND window_handle; }; HWND find_main_window(unsigned long process_id) { handle_data data; data.process_id = process_id; data.window_handle = 0; EnumWindows(enum_windows_callback, (LPARAM)&data); return data.window_handle; } BOOL CALLBACK enum_windows_callback(HWND handle, LPARAM lParam) { handle_data& data = *(handle_data*)lParam; unsigned long process_id = 0; GetWindowThreadProcessId(handle, &process_id); if (data.process_id != process_id || !is_main_window(handle)) { return TRUE; } data.window_handle = handle; return FALSE; } BOOL is_main_window(HWND handle) { return GetWindow(handle, GW_OWNER) == (HWND)0 && IsWindowVisible(handle); }
Dieser Code definiert eine Hilfsstruktur, handle_data, um sowohl die Prozess-ID als auch zu speichern Der Fenstergriff. Die Funktion find_main_window() verwendet EnumWindows(), um alle Fenster der obersten Ebene aufzuzählen, überprüft die jedem Fenster zugeordnete Prozess-ID und filtert mithilfe der Funktion is_main_window() Fenster heraus, die keine Hauptfenster sind. Wenn das Hauptfenster gefunden wird, speichert der Code sein Handle in der Struktur handle_data und gibt es zurück.
Mit diesem Ansatz können Sie das Hauptfenster-Handle von einer Prozess-ID abrufen und so dessen Erscheinungsbild oder steuern Verhalten nach Bedarf.
Das obige ist der detaillierte Inhalt vonWie rufe ich mit EnumWindows() ein Hauptfenster-Handle von seiner Prozess-ID ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!