Einzelnen Beitrag anzeigen

Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: Andere Applikation Kontrollieren

  Alt 5. Jan 2007, 18:40
Hi.

Ich glaube wenn du die Frage das nächste Mal genauer formulierst, dann bekommst du schneller ne Antwort.

Also verstehe ich das richtig, du willst haben das dein Programm etwas in das Edit-Feld eines anderen Programmes schreibt.

Folgender Code, mit Erklärung, da du ja was lernen willst
Delphi-Quellcode:
function GetFocussedWindow(ParentWnd:HWnd):HWnd;
var OtherThreadID,Buffer : DWord;
begin
  OtherThreadID:=GetWindowThreadProcessID(ParentWnd, @Buffer);
  if AttachThreadInput(GetCurrentThreadID, OtherThreadID, true) then begin
    Result:=GetFocus;
    AttachThreadInput(GetCurrentThreadID, OtherThreadID, false);
  end
  else
    Result:=0;
end;


var WindowHandle : HWND;
begin
WindowHandle := GetFocussedWindow(GetForegroundWindow());
PostMessage(WindowHandle , wm_KeyDown, Ord('A'),0);
end;
Zu den einzelnen Funktionen:
function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall; PostMessage ist soweit ich weiß wie SendMessage, nur das PostMessage keine Bestätigung anfordert, ob die Message auch wirklich gesendet wurde. Damit senden wir Messages^^

Zitat:
GetFocussedWindow(GetForegroundWindow());
Dieses Duo liefert dir das Handle des im fokusierten Fenster fokusierten Objektes, in dem Falle das Edit Feld wo du die Zahlen eingibst.

Die Anweisung
PostMessage(WindowHandle , wm_KeyDown, Ord('A'),0); führt also in diesem fokussiertem Objekt die Anweisung wm_KeyDown aus, und drückt die Taste A, welche natürlich vorher in einen Ordinalwert umgewandelt werden muss.


Ich hoffe du hast wenigstens einen Teil verstanden
Dieser Code funktioniert nur wenn du den Fokus im Edit-Feld hast wo die Zahlen reinsollen, den Buttpn klickst du auf ähnliche Weise.
Philipp F.
  Mit Zitat antworten Zitat