1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| procedure TForm1.Button2Click(Sender: TObject);
var hiExplorer,ClientWork,Toolbar,ComboBox,ComboBoxChild,Edit:HWND;
wnd: HWND ;
i,Len:integer ;
result:array of char ;
s : string ;
begin
hIExplorer := FindWindow('IEFrame',nil);
//SetForegroundwindow(hIExplorer) ;
//Handle de la fenêtre de travail
ClientWork:=FindWindowEx(hiExplorer,0,'WorkerA',nil);
if ClientWork=0 then //Compatibilité XP / 98
ClientWork:=FindWindowEx(hiExplorer,0,'WorkerW',nil);
// Handle de la ToolBar (casert pas)
Toolbar:=FindWindowEx(ClientWork,0,'ReBarWindow32',nil);
// Handle du ComboBox
ComboBox:=FindWindowEx(Toolbar,0,'ComboBoxEx32', nil);
ComboBoxChild:=FindWindowEx(ComboBox,0,'ComboBox',nil);
// Cherche le Handle du Edit
Edit:=FindWindowEx(ComboBoxChild,0,'Edit',nil);
//envoie les messages pour récupérer la longueur de l'URL
Len:=SendMessage(Edit,WM_GETTEXTLENGTH,0,0)+1;
// récupère l'URL (mais c'est juste pour le fun)
SetLength(Result,Len);
SendMessage(Edit,WM_GETTEXT,Len,Integer(@Result[1]));
// envoie le "End" puis les backspaces
wnd:=Edit ;
Sendmessage(wnd,WM_KEYDOWN, VK_END,0);
Sendmessage(wnd,WM_CHAR , VK_END,0);
Sendmessage(wnd,WM_KEYUP , VK_END,0);
for i:=0 to Len-1 do begin
Sendmessage(wnd,WM_KEYDOWN, VK_BACK,0);
Sendmessage(wnd,WM_CHAR , VK_BACK,0);
Sendmessage(wnd,WM_KEYUP , VK_BACK,0);
end ;
// envoie la nouvelle URL
s:='MyUrl' ;
for i:=1 to Length(s) do begin
Sendmessage(wnd,WM_KEYDOWN, ord(s[i]),0);
Sendmessage(wnd,WM_CHAR , ord(S[i]),0);
Sendmessage(wnd,WM_KEYUP , ord(S[i]),0);
end ;
exit ;
end ; |
Partager