W
webyjh
Unregistered / Unconfirmed
GUEST, unregistred user!
如何向后台(非活动)的游戏窗口发送键盘按键消息,不是普通窗口!
下面是我的线程单元的主要过程
procedure TBeginThrd.Execute;
var
Wnd: HWND;
begin
//找到窗口标题为'Element Client'的窗口的句柄
Wnd := FindWindow(nil,'Element Client');
if Wnd <> 0 then
begin
repeat
//重复发送键盘按键2
keybd_event(ord('2'), MapVirtualKey(ord('2'), 0), 0, 0);
keybd_event(ord('2'),MapVirtualKey(ord('2'),0),KEYEVENTF_KEYUP,0);
sleep(5000);
until Terminated;
end
else
Messagebox(handle,'相应程序没有运行!','提示',MB_OK+MB_IconError);
end;
这程序当游戏窗口为当前活动窗口时可以正确发送2键,但是游戏窗口最小化后却无效,但我换成"记事本"程序时却又可以,不得其解,望高手指点一二,小弟感激不尽!
忘记说了,postmessage() sendmessage()也都试过了,都是一样的无效
下面是我的线程单元的主要过程
procedure TBeginThrd.Execute;
var
Wnd: HWND;
begin
//找到窗口标题为'Element Client'的窗口的句柄
Wnd := FindWindow(nil,'Element Client');
if Wnd <> 0 then
begin
repeat
//重复发送键盘按键2
keybd_event(ord('2'), MapVirtualKey(ord('2'), 0), 0, 0);
keybd_event(ord('2'),MapVirtualKey(ord('2'),0),KEYEVENTF_KEYUP,0);
sleep(5000);
until Terminated;
end
else
Messagebox(handle,'相应程序没有运行!','提示',MB_OK+MB_IconError);
end;
这程序当游戏窗口为当前活动窗口时可以正确发送2键,但是游戏窗口最小化后却无效,但我换成"记事本"程序时却又可以,不得其解,望高手指点一二,小弟感激不尽!
忘记说了,postmessage() sendmessage()也都试过了,都是一样的无效