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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| procedure TFrmTestStructureMemoire.Button14Click(Sender: TObject);
var
HwndEdit: HWND;
lpClassName: PChar; // pointer to class name
lpWindowName: PChar; // pointer to window name
lpString: PChar; // address of string
HwndParent: HWND;
HwndChildAfter: HWND; // handle to a child window
lpszClass: PChar; // pointer to class name
lpszWindow: PChar; // pointer to window name
lpRes : array[0..256] of Char;
begin
lpClassName:= nil; //'#32770'; // pointer to class name
lpWindowName:= 'Ouvrir'; // pointer to window name
{Récupère le handle de la boite de dialogue Ouvrir}
HwndParent := FindWindow(lpClassName, lpWindowName);
if HwndParent <> 0 then begin
if GetWindowText( HwndParent, lpRes, 256) > 0 then begin
ShowMessage('Parent GetWindowText : ' + lpRes);
end;
{ Mettre la fenêtre au premier plan en connaissant son handle }
BringWindowToTop(HwndParent);
HwndChildAfter := GetWindow(HwndParent, GW_CHILD);
if HwndChildAfter <> 0 then begin
lpszClass := 'Edit';
lpszWindow := nil;
HwndEdit := FindWindowEx(HwndParent, HwndChildAfter, lpszClass, lpszWindow);
if HwndEdit = 0 then begin
lpszClass := 'ComboBoxEx32';
HwndEdit := FindWindowEx(HwndParent, HwndChildAfter, lpszClass, lpszWindow);
end;
if HwndEdit <> 0 then begin
if GetWindowText( HwndEdit, lpRes, 256) > 0 then begin
ShowMessage('Old Edit GetWindowText : ' + lpRes);
end;
lpString := PChar(Edit3.Text);
//lpString := nil;
//if not SetWindowText(HwndEdit, lpString) then begin
// ShowMessage('SetWindowText : ' + IntToStr(GetLastError()));
//end else begin
SendMessage(HwndEdit, WM_SETTEXT, 0, Longint(lpString));
SendMessage(HwndEdit, CM_TEXTCHANGED, 0, 0);
if GetWindowText( HwndEdit, lpRes, 256) > 0 then begin
ShowMessage('New Edit GetWindowText : ' + lpRes);
end;
//end;
end else begin
ShowMessage('FindWindowEx : ' + IntToStr(GetLastError()));
end;
end else begin
ShowMessage('GetWindow : ' + IntToStr(GetLastError()));
end;
end else begin
ShowMessage('FindWindow : ' + IntToStr(GetLastError()));
end;
end; |
Partager