![]() |
Delphi Button drücken
Liste der Anhänge anzeigen (Anzahl: 1)
*schnipp*
Spy++ Ausgaben:
Code:
und:
00100172
Microsoft Windows #32770 (Dialogfeld)
Delphi-Quellcode:
00090176
Programm schließen Button
Delphi-Quellcode:
Funktioniert nicht, warum?
Handle1:=FindWindow('Microsoft Windows',nil);
Handle2:=FindWindowEx(Handle1,0,'Button',nil); SendMessage(Handle2, BM_CLICK, 0, 0); SendMessage(Handle2, BM_CLICK, 0, 0); Weil bevor man nicht auf den doofen Button gedrückt hat, um die Windows Fehlermeldung wegzuklicken, kann man auch keine Prozess restarter methoden benutzen, da vorher folgendes NICHT funktioniert: - Schauen ob Prozess noch in Taskmanager - is File in use checken - is port 8085 (was das programm benutzt) open oder nicht Oder habt ihr andere Vorschläge, wie ich mein Programm "sauber crashen" lassen kann, ohne erst auf den Button drücken zu müssen? oder erkennen kann, dass das programm gefreezed sit? Mfg Novo [edit=Matze]Bild angehängt. Die Imageshack-Server sind immer dermaßen langsam und dort verschwinden die Bilder irgendwanna auch. MfG, Matze[/edit] [edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit] |
Re: Delphi Button drücken
Ich weiß nicht, wie oft ich es noch sagen soll: Baut eine gescheite Fehlerüberprüfung ein, dann wisst ihr auch, warum es nicht funktioniert. Und ein Blick in die Doku kann auch sehr aufschlussreich sein. Was ist der erste Parameter von
![]() |
Re: Delphi Button drücken
Das doofe ist, so crashen tut es nur auf dem RootServer und nicht bei mir, wo denn der Delphi Debugger ist.
Werde mir das morgen früh nochmal anschauen und ne log.txt detailiert schreiben. sorry wenn ich nicht genug geschaut habe. Mfg Novo |
Re: Delphi Button drücken
Was mich viel mehr interessieren würde, ist die Antwort auf die Frage, ob das, was Du da machst, überhaupt legal ist.
So weit ich weiß, verbietet Blizzard lokale Server... |
Re: Delphi Button drücken
Zitat:
Es ist legal und open source. Bitte beim Thema bleiben, aber ich glaube ich habe das mit dem Button hinbekommen und den crash ebenfalls behoben. |
Re: Delphi Button drücken
Es wäre schön, wenn du noch deine Lösung einstellen würdest für andere Mitglieder, die eventuell ein ähnliches Problem haben. Danke.
|
Re: Delphi Button drücken
Zitat:
Ihr bietet hier im Forum eine WinSpy.exe an, die macht dieses hier:
Code:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var i: Word; hChild: HWND; begin hChild := 0; Result := 0; Dec(ChildNr); for i := 0 to ChildNr do begin hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil); if hChild = 0 then Break; Result := hChild; end; end; procedure TfrmMain.TimerRestarterTimer(Sender: TObject); var wndMain, wndChild: HWND; begin WriteLog('Periodic Check! Next check in ' + IntToStr((TimerRestarter.Interval div 1000)) + ' Seconds ...' ); wndMain := FindWindow('#32770','Microsoft Windows'); if wndMain <> 0 then begin wndChild := FindWindowEx(wndMain, 0, 'DirectUIHWND', nil); wndChild := FindWindowEx2(wndChild,'CtrlNotifySink', 7); wndChild := FindWindowEx(wndChild, 0, 'Button', nil); if wndChild <> 0 then begin WriteLog('DEBUG: ' + 'Found Window Handle: ' + IntToStr(wndChild) + ' Force close Window!'); SendMessage(wndChild, BM_CLICK, 0, 0); //2x sonst gehts nich zu! SendMessage(wndChild, BM_CLICK, 0, 0); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz