问题标签 [sendinput]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# p/Invoke 如何使用 SendInput 为 DirectX 游戏模拟 keyPRESS 事件
我经常为各种机器人或其他 GUI 自动化程序模拟键盘按下事件而苦苦挣扎。
我设法使用以下方法模拟按键事件:
或者
和 keyup 事件使用:
或者
虽然我尝试将两者结合为:
我已经取得了不同程度的成功,但我实际上从来没有能力模拟一个按键按住/按下事件,在这种情况下,DirectX(或其他 3d)游戏会像使用物理键盘的人那样看到我的输入......
如何使用 SendInput 模拟 DirectX 游戏所见的按键/按住事件?
c# - SendInput 在 pc 的水果忍者中被阻止
我正在编写一个程序,它使用SendInput
函数来模拟鼠标事件来玩 PC 的水果忍者。但是当我打电话时SendInput
,鼠标移动了,但游戏屏幕上没有任何反应。谁能告诉我为什么它不起作用并给我一些解决方案?我在 C# 上编程并用于[dllimport]
调用SendInput
函数。谢谢。
c++ - SendInput() 不等于在 C++ 中手动按下键盘上的键?
我想编写一个 C++ 代码来模拟按下键盘键“A”:
当我启动其他程序并等待我的程序执行时,它工作正常,单击“A”并且第一个程序对其做出反应。但是我发现在另一个应用程序中我的操作被某种方式阻止了(我可以手动按键盘上的“A”,但使用我的程序不会导致任何操作)。
那么,我可以做些什么来使从程序中按“A”与手动按“A”更加相同(这样第二个程序就不会识别出它是从程序中调用的)?
我没有第二个程序的源代码,也不知道它是如何识别没有手动按下“A”的。
我确定我想对我的代码做出反应的窗口是前台,接收并阻止我的密钥(因此它可以确定事件不是来自用户而是来自程序)。
delphi - SendInput 与 keybd_event
MSDN 声明 keybd_event 已被 SendInput 取代。在重写期间,我切换到使用 SendInput ...这很好,除非尝试发送 Alt 键组合。在 Win7 64 位系统上(尚未在其他地方尝试过),发送 Alt 键会导致在目标应用程序中击键出现之前很长的延迟。
任何想法为什么?还是我做错了什么?现在,我回到了 keybd_event——下面的第二个版本。
winapi - 应用程序可以阻止对 SendInput 的调用吗?
有一个游戏,我正在尝试自动执行一些操作。
我过去非常成功地使用过SendInput。但是,使用此应用程序,我无法通过鼠标单击来工作。我已经使用其他应用程序对其进行了测试,并且一切都按预期工作。
应用程序可以阻止我使用 SendInput 吗?如果是这样,我能以某种方式绕过它吗?
旁注:我正在用 C# 编写代码并在 Windows 7 x64 上运行。我试图与之交互的应用程序是 x86。不知道这样有没有区别?我已经测试了与 x64 和 x86 应用程序交互的代码。
c# - SendInput() PInvoke 不起作用,我不知道为什么
由于某种原因,SendInput() Pinvoke 不起作用。SendInput() 总是返回 0,我试图以管理员身份运行它,仍然没有任何变化。它在 C++ 中完美运行。我一直在寻找几个小时,请帮助我。我正在运行 Windows 8 64x 位计算机。也许它与我的操作系统有关?
谢谢!
c - 连续 SendInput 调用之间的最小间隔
我正在使用SendInput
.
例如,要输入一个a
字符,我发送两个命令:
- 按A
- 发布A
要输入一个A
字符,我需要发送四个命令:
- 按Shift
- 按A
- 发布A
- 发布Shift
等等。为了完成这项工作,我必须在连续命令之间稍等片刻。我发现等待间隔的长度很重要:如果我使用100 ms,上述命令序列并不总是成功,但200-250 ms似乎足以使它们稳定。如果它失败了,它有助于重复一个序列。目前我的代码在许多用户 PC 上成功运行,但由于等待,它有点慢。
为了加快代码速度,我想了解发生了什么。Windows 中是否存在固有的、记录在案的限制,是什么让连续SendInput
调用之间的等待不可避免?是否可以估计我至少必须等待多长时间?
提前致谢。
c# - 如何使用 SendInput() 将密钥发送到 DirectX 应用程序?
我需要将密钥发送到 DirectX 应用程序。我正在尝试使用 SendInput(),因为它听说它是除 DirectInput 钩子之外的最低级别的键模拟。
问题是,它只适用于 Windows 应用程序而没有任何问题,但不适用于 DirectX 应用程序。我正在寻找解决方案,我发现我必须使用 Scancode 而不是 wVk 并将 dwFlags 设置为 0x0008 (scancode)
它应该向最前台窗口发送“a”,但我的 directX 应用程序对此没有反应。我还尝试使用 DirectX 扫描码(在我的情况下为 'a' = 0x1E),仍然没有任何变化。
但是,它应该与 SendInput() 一起使用。我下载了“Glovepie”软件来测试这个程序是否可以模拟游戏的按键。它确实有一种方法可以做到这一点,我认为他们不会进入图书馆。经过一些研究,他们似乎也使用了 SendInput() API。有谁知道我应该怎么做才能让它工作?
非常感谢
vb.net - 如何在外部应用程序的 mdi 子窗口上使用 sendinput?
我正在尝试在外部应用程序的 mdi 子窗口上使用 sendinput API 向其发送键/鼠标输入以进行数学运算。我有窗口句柄 id 并使用 setfocus windows API 对其进行 setfocus,但 sendinput 不会发送密钥。我选择允许数值的接收控件。此外,我需要一些数值作为十进制输入发送,例如 3.3。如果您需要外部应用程序的图像,请在下面发表评论,我将在我的谷歌驱动器帐户上发布图像。
编辑:这是一个图像的链接,因此有人可以弄清楚需要如何发送输入: https ://drive.google.com/file/d/0BwIppJC0dxJBalp3Ykd2VzZkQ0E/edit?usp=sharing
发送输入的目标控件是 Psi、D 和其他可以在 Panel0 中更改的值,我也需要单击按钮。
问题是发送输入根本无法工作,我的消息框显示输入已发送。