请教如何在另一个程序中模拟按F1键(50分)

  • 主题发起人 主题发起人 网络无限
  • 开始时间 开始时间

网络无限

Unregistered / Unconfirmed
GUEST, unregistred user!
我另外一个程序的标题是 aaa,进程名为nnn.exe
我的代码为
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWND;
begin
Wnd := FindWindow(nil,'aaa');
if Wnd <> 0 then
begin
postMessage(Wnd, WM_KEYDOWN, VK_F1, 0);
end;
end;
但没反映(这是一个游戏程序,我手动按F1有魔法出现),是不是我没将焦点转移到需要按键的窗体上,请问应该怎么实现?谢谢!
 
代碼沒錯,但是你想要什麼樣的反應啊?
你在aaa窗口中按按有沒有反應.[:D]
 
BringWindowToTop(Wnd);
 
你用这个试试看行吗?
keybd_event(VK_F1, MapVirtualKey(VK_F1,0), 0,0);
keybd_event( VK_F1, MapVirtualKey(VK_F1,0),KEYEVENTF_KEYUP,0);
 
关注, games is my favourite
如果可能,希望楼主把QQ发到我信箱里,希望和你的交流chai8229@163.com
 
这个估计和direct 有关,
在direct的游戏中,键盘操采用的是直接的硬件方式而非消息队列.
 
要成对出现
并且参数要对
PostMessage(hwnd,WM_KEYDOWN,$70,$3b0001);
PostMessage(hwnd,WM_KEYUP,$70,$C03b0001);
 
后退
顶部