Hallo Community,
ich entwickle im Moment eine Software mit der ich ähnlich wie mit Testtools wie WinRunner eine andere Software fernsteuern kann. Ich würde das gerne mit Hilfe der Funktion FindWindow() machen. Ich habe per Spy++ die entsprechenden Einträge gefunden und erziehle grundsätzlich auch schon die gewünschte Funktionalität, aber:
Unmittelbar nach dem Start der zu steuernden Anwendung können die entsprechenden Handles nicht gefunden werden. Ein Element liegt auf einer Toolbar. Das Handle auf die Toolbar ist immer da. Die "Childhandles" der Toolbar sind zunächst aber nicht sichtbar. (egal wie oft ich in Spy F5 drücke).
Inzwischen habe ich einen seltsammen reproduzierbaren Effekt entdeckt und ein Vorgehen entwickelt, um sie sichtbar zu machen: Ich klicke einmal in das entsprechende Feld in der zu steuernden Anwendung, drücke in Spy++ F5 (refresh) und bringe die Anwendung dann wieder in den Vordergrund. Ich erhalte dann augenblicklich den Wert des entsprechenden Handles per findWindow() und sehe es auch, wenn ich in Spy++ nochmal F5 drücke. Vor der Ausführung des beschriebenen Ablaufs erhalte ich als Handle 0.
Kann mir jemand diesen Effekt erklären bzw. sagen was Spy++ anstellt um das Handle sichtbar zu machen und wie ich das in meiner Anwendung nachstellen kann?
Vielen Dank