Forum: Win32/Win64 API (native code)
Delphi
by r29d43,
12. Aug 2009
Ich kenne jetzt WinSight leider nicht und weiß daher auch nicht, wie das die ChildWindows darstellt (eingerückt oder wie?).
Wenn <<Overlapped {#32770:Dialog} X.exe (177,150)-(1101,846) "XXX Hauptmenü">> das direkte ChildWindow von <<Overlapped {XXXmain} X.exe (0,0)-(0,0) "XXX Hauptmenü" >> ist, dann müsste <<FindWindowEx(twH1, 0, '#32770:Dialog', 'XXX Hauptmenü')>> eigentlich ein richtiges...
Forum: Win32/Win64 API (native code)
Delphi
by r29d43,
12. Aug 2009
Die Handles findest Du immer wieder mit FindWindow bzw. wenn es sich um Child-Windows handelt mit FindWindowEx (bei letzterem musst Du dich dann eben immer wieder vom TopLevel-Window aus bis zu diesem ChildWindow durchhangeln). Wichtig hierfür ist, dass dabei immer der exakten ClassTyp des Programms als Parameter angeben werden muss (das scheint hier bei WinSight der Ausdruck in der ersten...
Forum: Win32/Win64 API (native code)
Delphi
by r29d43,
12. Aug 2009
Mit den Programmen "Spy++" oder "Winspector Spy" müsste man eigentlich auch feststellen können, ob es noch mehrere Handles bzgl. deines Programms gibt. Also, u.U. mal danach googeln und dann downloaden.
Forum: Win32/Win64 API (native code)
Delphi
by r29d43,
11. Aug 2009
Eventuell, um auch den unwahrscheinlichen Fall noch auszuschließen, dass da immer noch irgendwo ein kleines Mißverständnis vorliegt: Ein SysErrorMessage(GetLastError) so ganz allein kann sich auch gar nicht bemerkbar machen, weil es nämlich nur die Rückgabe eines Strings ist. Ganz richtig müsste es also so heißen (natürlich):
if GetWindowPlacement(AHandle, @AWindowPlacement) then
begin
.
....