将密钥发送到非前台的游戏窗口
send a key to a game window not foreground
我正在玩一个由directX运行的游戏,我通过postMessage((将keybord的密钥发送到游戏窗口,但是在发送密钥之前,我必须将此窗口置于前台,否则它将失败。
::SetForegroundWindow(hwnd);
::PostMessage(hwnd, WM_KEYDOWN, keyCode, key_param_1);
Sleep(20);
::PostMessage(hwnd, WM_KEYUP, keyCode, key_param_2);
有没有办法在没有前景窗口的情况下发送密钥?(PS:游戏名称为《天龙八部》(
我上面粘贴的代码效果很好。唯一的缺点是我必须将窗口放在前台。我同时为这个游戏打开两个窗口,现在我添加一个互斥锁来控制两个窗口,效果很好,但是两个窗口之间的追逐太频繁了,我觉得对我的眼睛不好;这个技术不是为了生意,我向上帝发誓。我发现一个游戏的软件已经完成了,发送这个游戏的密钥不是前台,但这个软件的作者在5个月前被警察抓住并面临诉讼。我已经使用他的软件4年了,但现在他的软件被冻结了。所以我想自己做这个。
输入只能发送到焦点窗口(参见 https://en.wikipedia.org/wiki/Focus_(计算((
但是有一些技术可以规避这一点:
-
微软自己的"教程":https://learn.microsoft.com/en-us/dotnet/framework/winforms/how-to-simulate-mouse-and-keyboard-events-in-code
-
https://batchloaf.wordpress.com/2013/02/13/sending-一个键到一个窗口-那不是焦点-c-程序/
-
http://forums.codeguru.com/showthread.php?555185-已解决如何使用-发送输入((-对于-非焦点-窗口
- 在C++游戏中与库存系统作斗争
- 换位表导致测试失败(但在游戏中运行良好)
- Craps游戏问题,忽略if语句
- 矢量下标超出SFML游戏中的范围
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 我应该在简单的策略游戏中为各个派系使用类吗 - C++
- 游戏体验和升级
- 我的代码运行良好,但在游戏循环中中断
- 如何使用 SFML 在贪吃蛇游戏中定义游戏结束?
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 在猜谜游戏 c++ 中不计算尝试次数
- 在C++不适用于猜数字游戏的情况下再次播放选项
- 在为我的基于文本的 RPG 游戏制作库存时遇到困难
- 在定义字符数组(井字游戏)的 for 循环中应用输入限制
- Frank Luna 在他的书"使用 DirectX12 进行 3D 游戏编程"的介绍中盒子示例的问题
- 如何在Linux上正确发布C++软件(游戏)
- 将密钥发送到非前台的游戏窗口
- 暂停游戏时,进入前台,重启后