Thema: Delphi Delphi Button drücken

Einzelnen Beitrag anzeigen

Novo

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

Re: Delphi Button drücken

  Alt 13. Feb 2010, 00: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