Zitat von
himitsu:
Erstmal schauen was wndChild wann für Werte hat und wenn am Ende wirklich wndChild<>0 rauskommt, dann schauen was SendMessage as Rückgabewerte liefert.
Stimmt alles - leider!
ABER auch ein blindes Huhn findet hin und wieder mal ein Korn:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
I : Integer;
TestText : String;
wndMain : HWND;
wndChild : HWND;
Begin
wndMain:=FindWindow('MozillaUIWindowClass', 'Advoplex - Mozilla Firefox');
If wndMain <> 0 Then
Begin
wndChild:=FindWindowEx(wndMain, 0, 'MozillaWindowClass', nil);
wndChild:=FindWindowEx(wndChild, 0, 'MozillaContentWindowClass', nil);
wndChild:=FindWindowEx(wndChild, 0, 'MozillaWindowClass', nil);
If wndChild <> 0 Then
Begin
TestText:='Benutzername';
For I:=1 To Length(TestText) Do
SendMessage(wndChild, WM_CHAR, Ord(TestText[I]), 0);
SendMessage(wndChild, WM_CHAR, VK_TAB, 0);
TestText:='Passwort';
For I:=1 To Length(TestText) Do
SendMessage(wndChild, WM_CHAR, Ord(TestText[I]), 0);
SendMessage(wndChild, WM_CHAR, VK_RETURN, 0);
End
Else ShowMessage('Kein TEdit');
End
Else ShowMessage('Kein AdvoPlex');
end;
Ein (T)Edit gibt es in der Tat nicht. Aber das hindert mich nicht, bei bekanntem Formular-Aufbau entsprechende Tasten zu senden. Es war mir ebenfalls entgangen, dass ich SendMessage nicht an wndMain, sondern an wndChild senden muss!
Jetzt klappt es! Danke für Eure Hinweise. Ohne die würde ich jetzt noch immer im Dunkeln des Edit-Feldes rumstochern!
Gruß, Alex