Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: EnumProc - EditFeld in externer Software suchen

  Alt 13. Aug 2018, 11:05
Hier ein Beispiel zu meinem genannten Source unter Verwendung des Tools "Spy Window"

Ziel: Daten ermitteln um in WindowsExplorer Fenster die Adress-Zeile manipulieren zu können.
Vorgehensweise: Explorer Fenster öffnen und WindowSpy starten.

Mit dem Sniper Icon auf die Fenster Caption drag/droppen nun sieht man die Daten aus diesem Bild: handle-vom-fenster-ermitteln.jpg
Was uns an diesem Hinweisen hilft sind "Caption" und "Class"
Also notieren wir uns diese und zwar so
TARGETCLASS = 'CabinetWClass';
TARGETCAPTION = 'Dieser PC';

Jetzt Snipern wir die Adress-Zeile und erhalten neue Daten, mit einem klick auf General kommt das zum Vorschein: id-vom-control-ermitteln.jpg
Was uns nun interessiert ist die Control ID.
Also notieren wir uns diese und zwar so:
TARGETEDCONTROL = $3E9;

Das ganze als Source zusammengepackt ergibt:

Delphi-Quellcode:
Procedure MachWas();
const
  TARGETCLASS = 'CabinetWClass';
  TARGETCAPTION = 'Dieser PC';
  TARGETEDCONTROL = $3E9;
  TARGETTEXT = 'Foobar'; // <- Das soll dann in Adresszeile stehen
var
  WH: HWND;
begin
  WH := 0;
  if Length(TARGETCLASS) > 0 then WH := FindWindow( TARGETCLASS, NIL );
  if ((WH = 0) and (Length(TARGETCAPTION) > 0)) then WH := FindWindow( NIL, TARGETCAPTION );
  if WH <> 0 then
  begin
    SendMessage(GetDlgItem(WH, TARGETEDCONTROL), WM_SETTEXT, 0, Integer(PChar(TARGETTEXT)));
  end;
  FindClose(WH);
end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (13. Aug 2018 um 11:15 Uhr)
  Mit Zitat antworten Zitat