PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FindWindow – wie mehrere Fenster finden?


aths
2012-09-14, 10:25:50
Für das TGT-Tuning-Tool das ich gerade schreibe, möchte ich mit bereits aufgerufenen Instanzen des Programms kommunizieren. Das ist eine Ein-Weg-Kommunikation: Wenn der User das Gamma-Profil aktiviert, soll eine Message an alle anderen laufenden Instanzen gesendet werden (so dass diese aufhören, ihr Gamma-Profil zu refreshen.)

Dazu müsste ich die Handles der Fenster bekommen. FindWindow gibt mir aber immer dasselbe Handle zurück, egal wie oft das Tool läuft. Wie bekomme ich ich alle Handles?

Nighthawk13
2012-09-14, 12:35:18
FindWindowEx() und immer eins weiter hangeln? Alternativ EnumWindows() mit eigener Filterfunktion.

Ectoplasma
2012-09-14, 13:38:44
Der deutlich bessere Weg ist es, irgend einen IPC Mechanismus, wie z.B. Shared Memory zu benutzten. Glaube mir, der Weg über Fenster-Handles zu arbeiten ist wirklich grottig. Wenn man EnumWindows verwendet, weiss man im Zeifelsfall trotztdem nicht, von dem das Handle stammt. FindWindow liefert nur Handles des eignen Prozesses soweit ich weiss.

ShadowXX
2012-09-16, 01:09:22
Wir nehmen uns für sowas immer die Tasklist vor und Enumerieren die dann durch, ist auch nicht besonders elegant, aber ich bisher immer das "Fenster" (= also den Prozess) gefunden den ich gesucht habe.

aths
2012-09-18, 12:30:37
Wir nehmen uns für sowas immer die Tasklist vor und Enumerieren die dann durch, ist auch nicht besonders elegant, aber ich bisher immer das "Fenster" (= also den Prozess) gefunden den ich gesucht habe.
Ich will nicht nur "den Prozess" finden, sondern alle Prozesse des Tools.