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.