问题标签 [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.

0 投票
1 回答
6034 浏览

winapi - 键盘的 SendInput() - 仅大写

很可笑。几分钟前我刚刚在这里询问SendInput() 键盘 - 只有小写,如何发送大写字母。解决方案是在信件之前发送班次。但是开机后就关不掉了...

我正在努力使用这样的 KEYEVENTF_KEYUP 标志:

但它似乎根本不起作用。它总是发送AA。

谢谢。

0 投票
1 回答
1408 浏览

c# - KeyEventArgs 到 VirtualKeyCode

我正在尝试使用WindowsInputSimulator 库来帮助我模拟按键。

该软件将由客户端和服务器组成。当在客户端输入一个键时,它的 KeyEventArgs 被发送到服务器。然后服务器对其执行以下操作:

这适用于单键。但是,我也在尝试使用修饰键,但遇到了一些麻烦。例如,按 SHIFT + K 会产生“k2”,这让我相信我转换为 VirtualKeyCodes 的过程很不可靠,或者是其他什么东西。

另外,在发送这些命令时,我应该只捕获 KeyDown / KeyUp 事件吗?还是我也应该注意 KeyPress 事件?我应该也可以使用箭头键和非字符键,这让我觉得我应该忽略 KeyPress。

编辑:另外,当我使用多个修饰符时,我怎么知道?我应该如何将它们串在一起?

想法?谢谢!

0 投票
1 回答
1878 浏览

c++ - 使用 SendInput 锁定计算机

我想通过 C++ 使用 SendInput 来锁定计算机(Windows+L)。我创建了SendInput用于发送 VK 的简单 keyDown / keyUp 函数。在 keyUp 上,它添加了flag 0x0002

我可以模拟我的 Tab 键、我的 Windows 键,现在我尝试用模拟的击键来锁定我的计算机。我发送以下消息:

我的问题:什么也没发生:-(

有人知道解决方案是什么吗?

0 投票
1 回答
189 浏览

winapi - 如何将字符串写入其他应用程序?

如何使用 windows API 与其他应用程序通信?

例如,另一个应用程序有一个文本框,我已经使用 mouse_event 在其中设置了鼠标,但我不知道如何向它发送字符串,并在该文本框上显示字符串?

0 投票
3 回答
74056 浏览

c# - 通过 user32.dll 中的 SendInput 发送密钥

将此板用作演示目的的键盘。

无论如何,为了让长话短说,除了极少数情况外,一切都很好。我使用位于 user32.dll 中的SendInput函数发送击键。

所以我的程序看起来像:

以下是我在网上找到的这些方法使用的结构以及关键代码:(请注意,它看起来像很多代码,因为枚举中有很多关键代码)

所以现在我的问题是,为什么当我发送该组合键时,我得到的结果与我在真正的键盘上发送的结果不同?98% 的事情都有效。例如我能够做到:

这将发送一个大写A。

我应该使用不同的库吗?

我喜欢这种方法的原因是因为我事先不知道用户是否会发送组合键例如在 windows 窗体中如果我这样做:

System.Windows.Forms.SendKeys.SendWait("+{end}");这将发送 shift + end 但也许用户只想发送 shift ...

0 投票
3 回答
3859 浏览

c# - SendInput Ctrl + C 然后通过 Clipboard.GetText 检索复制的内容不起作用

我有一个带有 aTextBox和 a的简单 Windows 窗体应用程序Button。单击Button将焦点放在TextBox并模拟击键Ctrl + C以将内容复制到剪贴板。我正在用这个键模拟SendInput,也试过了SendKeys.Send("^c")。这适用于复制操作,因为我可以通过将内容粘贴到记事本或其他东西来验证。

然后我想以编程方式通过Clipboard.GetText. 但是,问题在于此方法似乎总是返回剪贴板中的先前值而不是当前值。例如,如果 my 的值序列TextBox是:“hello”、“world”,那么输出序列是:junk、“hello”。为了简单起见,以下是我使用该SendKeys方法的代码:

0 投票
1 回答
1510 浏览

c# - 控制 sendinput 鼠标移动速度

使用 Sendinput 方法时是否可以控制鼠标指针的速度?

例如这是我的代码:

以下代码执行 MouseMovement + Mouse Button Press (down) 命令,但问题是指针传送到位置 (int x, int y) 而不是以某个恒定速度移动到该位置。

我希望能够控制那个速度。

0 投票
1 回答
306 浏览

c# - 激活热键组合后如何正确模拟键盘事件

我有一个注册某个热键组合以进行激活的程序。对于这个问题,假设这个热键是 Ctrl + Alt + D。一旦按下组合,我的程序将使用 SendInput 模拟一些其他键盘事件到活动窗口,例如,它可以模拟 Ctrl + A。我的问题是 Ctrl + A 的模拟无法正常工作,因为(我认为)仍然从热键组合中按下 Ctrl 键。我正在考虑的解决方案之一是为我的热键组合中的每个键发送 Key Up 事件,然后模拟 Ctrl + A,但是我想检查这是否是处理它的正确方法?

0 投票
2 回答
2806 浏览

c++ - PostMessage() 在 C++ 中模拟输入?

我正在尝试为游戏制作一个简单的机器人程序。即使游戏失焦或最小化,我也希望它能够正常工作。因此,我不能使用 SendInput() 因为它模拟全局事件。我发现,要完成这项工作,我必须使用 PostMessage() 函数。我做了一个模拟记事本输入的测试程序:

即使记事本失焦或最小化,此示例也成功模拟了在记事本中单击“a”。我同样让鼠标事件也能正常工作。

但是,当我为我的游戏尝试同样的事情时,我无法发布点击命令。查了一下发现调用FindWindowEx()时获取了原来的句柄但是权限被拒绝,没有返回句柄。

如果阻止此功能,是否有办法获得对另一个进程的“编辑”访问权限?

0 投票
1 回答
1685 浏览

c++ - 在 C++ 中的 Windows 上使用 SendInput 发送同时键盘事件

我想使用SendInput在 C++ 中模拟键盘按下,虽然单个按钮可以工作,但尝试同时发送键(快捷方式)不起作用。

我尝试了一切,但没有任何效果,如果我单独发送VK_LWIN它会显示,但无法同时组合键。

这是我的代码:

虽然这很好用:

提前感谢任何提示。