저는 키패드를 델파이의 메모장 창으로 보내려고합니다. 코드의 지금까지 가지고SendMessage를 사용하여 Delphi의 Ctrl + V를 Delphi에서 보내십시오.
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
windows,
messages;
var
H : HWND;
begin
H := FindWindowA(NIL, 'Untitled - Notepad');
if H <> 0 then begin
SendMessage(H, WM_KEYDOWN, VK_CONTROL, 1);
SendMessage(H, WM_KEYDOWN, MapVirtualKey(ord('v'), 0), 1);
SendMessage(H, WM_KEYUP, MapVirtualKey(ord('v'), 0), 1);
SendMessage(H, WM_KEYUP, VK_CONTROL, 1);
end;
end.
내가이 예를 발견했습니다
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
windows,
messages;
var
H : HWND;
I : Integer;
s : String;
begin
h := FindWindowA(NIL, 'Untitled - Notepad');
if h <> 0 then
begin
h := FindWindowEx(h, 0, 'Edit', nil);
s := 'Hello';
for i := 1 to Length(s) do
SendMessage(h, WM_CHAR, Word(s[i]), 0);
PostMessage(h, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(h, WM_KEYDOWN, VK_SPACE, 0);
end;
end.
을 나는 시뮬레이션 할 수있는 방법/보내기가 다른 작업을 할 있도록 Parentwindow에 CTRL + V 응용 프로그램? 모든 응용 프로그램이 메모장과 동일한 ClassNames 및 컨트롤을 가지고있는 것은 아닙니다. 당신이 PostMessage를()에 sendMessage 첨부()을 전환하면
핸들이 제대로 나오는지 알고 있습니까? (예 : 'if'트리거가있는 경우 메시지 팝업) – lurker
대신 'WM_PASTE' 메시지를 게시 하시겠습니까? – TLama
창 핸들을 찾고 유효합니다. 또한'SendMessage (H, WM_PASTE, 0, 0); 시도했지만 성공하지 못했습니다. –