首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

sendmessage向其余程序发送模拟按键无效

2013-08-23 
sendmessage向其他程序发送模拟按键无效procedure TForm1.Button1Click(Sender: TObject)var H: HWNDbeg

sendmessage向其他程序发送模拟按键无效


procedure TForm1.Button1Click(Sender: TObject);
var H: HWND;
begin
  h := findwindow(nil, 'VisualBoyAdvance');
  if H > 0 then //如果找到密码输入窗体
  begin
    label1.Caption := '已找到窗体';
    SendMessage(h,WM_KEYDOWN,VK_F12,0);
  end;
end;


一段简单代码,向VBA模拟器发送模拟按键F12(功能是游戏截图),也试过postmessage,可总是无效,请各位帮帮忙。

VBA模拟器链接:
http://disland.emu-zone.org/emu/vba.zip
超级马里奥游戏ROM链接
thunder://QUFmdHA6Ly9yb21zNjE4OnJvbXM2MThAcm9tczMuZW11NjE4LmNvbToyMzcvemhhbmdqaS9nYmEvYWxsc2V0LzIzNTggLSBDaGFvamkgTWFsaW91IFNoaWppZSAoQykuemlwWlo=

[解决办法]
findwindow(nil, 'VisualBoyAdvance');//VisualBoyAdvance是窗口的标题。而不是其它。
[解决办法]
试试
SendMessage(h, WM_KEYDOWN, VK_F12, 1+MapVirtualKey(VK_F12, 0) shl 16);
[解决办法]
引用:

procedure TForm1.Button1Click(Sender: TObject);
var H: HWND;
begin
  h := findwindow(nil, 'VisualBoyAdvance');
  if H > 0 then //如果找到密码输入窗体
  begin
    label1.Caption := '已找到窗体';
    SendMessage(h,WM_KEYDOWN,VK_F12,0);
  end;
end;


一段简单代码,向VBA模拟器发送模拟按键F12(功能是游戏截图),也试过postmessage,可总是无效,请各位帮帮忙。

VBA模拟器链接:
http://disland.emu-zone.org/emu/vba.zip
超级马里奥游戏ROM链接
thunder://QUFmdHA6Ly9yb21zNjE4OnJvbXM2MThAcm9tczMuZW11NjE4LmNvbToyMzcvemhhbmdqaS9nYmEvYWxsc2V0LzIzNTggLSBDaGFvamkgTWFsaW91IFNoaWppZSAoQykuemlwWlo=


首先你确定是否label1.Caption已变为'已找到窗体',如果已变了,说明已找到Handle;
然后试下这句:PostMessage(h,WM_CHAR,VK_F12,0);
[解决办法]
试下这个:PostMessage(h,WM_IME_CHAR,VK_F12,0);
[解决办法]
可以下载个sndkey32.pas,调用AppActivate,然后SendKeys("{F12}")试试
------解决方案--------------------


如果这程序是用directinput处理按键,那自然是不接受任何按键消息sendmessage向其余程序发送模拟按键无效
[解决办法]


[解决办法]
学习    多少  

热点排行