AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Button drücken

Ein Thema von Novo · begonnen am 10. Feb 2010 · letzter Beitrag vom 12. Feb 2010
Antwort Antwort
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#1

Delphi Button drücken

  Alt 10. Feb 2010, 22:42
*schnipp*

Spy++ Ausgaben:
Code:
00100172
Microsoft Windows
#32770 (Dialogfeld)
und:

Delphi-Quellcode:
00090176
Programm schließen
Button
Delphi-Quellcode:
Handle1:=FindWindow('Microsoft Windows',nil);
Handle2:=FindWindowEx(Handle1,0,'Button',nil);
SendMessage(Handle2, BM_CLICK, 0, 0);
SendMessage(Handle2, BM_CLICK, 0, 0);
Funktioniert nicht, warum?

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]
Miniaturansicht angehängter Grafiken
crashed_126.png  
Takeo
Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Delphi Button drücken

  Alt 10. Feb 2010, 22:50
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 Delphi-Referenz durchsuchenFindWindow?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Delphi Button drücken

  Alt 10. Feb 2010, 23:02
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
Takeo
Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
  Mit Zitat antworten Zitat
s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Delphi Button drücken

  Alt 11. Feb 2010, 08:14
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...
Gruß
s-off
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Delphi Button drücken

  Alt 11. Feb 2010, 12:34
Zitat von s-off:
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...
Das Thema hatten wir schon.
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.
Takeo
Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Delphi Button drücken

  Alt 11. Feb 2010, 12:40
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Delphi Button drücken

  Alt 12. Feb 2010, 23:16
Zitat von Luckie:
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.
Selbstverständlich.
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;
Takeo
Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz