问题标签 [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 投票
2 回答
593 浏览

c++ - 模拟 alt-tab 键会导致菜单卡在屏幕上

我需要为 alt-tab 功能制作一个自定义热键。我SendInput通过发送相应的密钥来做到这一点,它工作正常。

但是,如果热键已经包含 alt 键,则程序只需按下并释放 tab;但这样做会导致 alt-tab 菜单甚至卡在屏幕上,唯一让它消失的方法是关闭我的程序。这怎么可能发生,关闭我的程序与菜单消失有什么关系?

另一方面,无论 alt 是否已经关闭,发送 (alt down)(tab down)(tab up)(alt up) 键在所有情况下都有效,但由于其他原因我不能依赖这种行为。

如果有帮助,我正在使用 WinXP,我还没有在 Win7 计算机上尝试过。

0 投票
1 回答
1501 浏览

c# - 我在这个 SendInput 片段中做错了什么?

只是尝试一些 WinAPI 的东西。我有一个 C# 控制台应用程序,用于SendInput模拟某个键盘键的 akeydownkeyup事件。但它不起作用,也许我在做一些愚蠢的事情,没有发送密钥,不确定我错过了什么 - (尝试发送“W”,休眠 5 秒,打开一些文本编辑器查看神奇的信在那里):

定义:

我究竟做错了什么?为什么没有发送密钥?

谢谢 :)

0 投票
1 回答
1508 浏览

c++ - C++ SendInput 不放开键

我在下面使用这些代码,它们一直按住左右键,直到我自己按下这些键才松开它们。

我可以运行左键代码并继续按右键.. 它会一直按左键.. 直到我自己按下左键才会停止。

当我运行右键代码时,右键也会发生同样的事情,它一直按右我可以按左键,它仍然会一直按右键,直到我自己按右键。

我使用 SendInput 的原因是因为 keybd_event 不可靠.. 如果你不在 DOWN/UP 之间放置一个 Sleep(Milliseconds) 它甚至不会做任何事情,并且使用 Sleep() 会抛出这个程序的意图它必须尽可能快地点击它,按住键任何时间都可能导致错误的答案(这就像一个瞄准程序)

这个是用来敲右键的

这个是用来敲左键的

编辑:新代码看起来像这样,错误不喜欢这种风格。

再次编辑:(也不起作用)我试图欺骗它先发送 KEYUP。

0 投票
2 回答
1067 浏览

c# - c# 移动鼠标没有焦点不起作用

我想在我的应用程序之外移动鼠标并模拟鼠标点击。

我已经尝试了所有可能的方式来移动鼠标、sendinput、包括 BotSuite 和 Input Simulator 在内的大量库。

每次我的应用程序失去焦点时,它都不会移动鼠标,也不会单击。我可以移动鼠标,然后在我的应用程序内部单击,但是一旦我失去焦点,它就会完全停止工作。我也不能点击我的应用程序之外的任何东西,即使在对焦时也是如此。

这是为什么?

这是使用 BotSuite 的片段。我在此之前开始了一个过程,并将其作为重点。

这是行不通的。但是,如果我事先在自己的应用程序上执行 SetForegroundWindow,则 Mouse.Move 命令有效。在我的应用程序边界之外单击都不起作用。

0 投票
1 回答
162 浏览

c# - 无法通过 SendInput() 发送 Browser_Back/Forward(仅在 Surface Pro 2 上)

几天前,我拿到了我的 Microsoft Arc Touch Mouse Surface Edition。不幸的是,它没有前进/后退按钮(它只执行 Page-Up/Page-Down)。

因此,我编写了一个小程序,它可以捕捉到 Page_Up/Page_Down 键的按下并发送浏览器后退/前进按钮。

在我的电脑(Win 8.1 Pro)上,这工作得很好。但是,在我的 Surface Pro 2(主要是为此编写程序)上,它不会发送 Browser_Back-/Forward-Buttons。对于每个其他键,该程序似乎都可以工作(如空格、字母、数字)。

这里是发送密钥代码的代码:

这里是 KeyboardHook:

因此,如果按下我键盘上的 Page-Down/page-Up 按钮,就会调用 send() 方法。0xA6 和 0xA7 是 Browser_Back 和 Browser_Forward 的键码。

在我的 Surface 上,可以正确识别 Page-Up/Page-Down 按钮。send() 方法也被调用,但它不会发送正确的键码。根据 Spy++ 的说法,如果 Keycode 为 0xA6 或 0xA7(在我的 PC 上可以使用),则 send() 不会发送任何内容。

Surface Pro 2 的问题在哪里?我能做什么,它工作,或者我怎么能确定它为什么不工作?

0 投票
0 回答
254 浏览

c++ - 虚拟键“退格”不起作用

我正在尝试使用Virtual-Key Codes实现按键(退格)的模拟。在文本文件打开时运行代码按预期工作(删除文本),但在 Win 8 照片应用程序打开时运行它不会做任何事情(例如,我希望它上升到上层相册) .

有谁知道为什么?为了在 Win8 photo App 中模拟退格键按下,我需要做什么?

我的代码:

0 投票
1 回答
2348 浏览

winapi - 如何准确处理双击?

我想通过单击 left_mouse 2 次来处理动作双击。在 2 次单击时间之间,我睡了 100 毫秒

SendInput(LEFT_CLICK...);
睡眠(100);
SendInput(LEFT_CLICK...);

它在我的 PC 上运行正常,但在虚拟机中无法正常运行 可能是,机器执行“SendInput”功能时存在延迟时间

即使我删除“Sleep(100)”,它只是单击 2 次而不是“双击“我想要的。

在这种情况下如何准确处理双击

无论如何,请建议我这样做

谢谢,

0 投票
0 回答
168 浏览

c++ - explorer.exe 上的 mouse_event 块

我正在开发一个远程访问应用程序,比如 teamviewer。我将在哪里将鼠标事件从客户端发送到服务器(使用 mouse_event() 函数在服务器上执行)。但是由于某种原因鼠标事件被阻止,服务器能够接收它们并使用 mouse_event() api将它们发布到操作系统,但没有结果。

是否有任何工具可以检查,为什么操作系统没有执行这些鼠标事件。

注意:键盘事件运作良好。我也尝试了 SendInput() api。

我在 Windows 上使用 C++ 开发应用程序。

请让我知道您的建议。

在此先感谢,保罗。

0 投票
0 回答
370 浏览

c++ - SendInput 在 Win xp 中无法正常工作

我正在开发一个使用INPUT结构的项目,并SendInput()使用 Hook 将输入命令发送到另一个窗口。

我正在使用以下代码来获取上次访问的应用程序窗口的句柄。

然后发送粘贴命令:

现在的问题是我可以在Win 7, 8 and 8.1. 但是我遇到的问题是第一个程序块在发送命令之前XP是额外的。TABCTRL-V

谁能告诉我为什么会这样?我该如何解决这个问题?任何时间的建议将不胜感激。提前致谢。

0 投票
2 回答
62453 浏览

c++ - C++ 使用 SetCursorPos 在窗口中移动鼠标

我创建了一个类似于 wiimote 的设备,我想将它用作 windows (8.1) 中的鼠标。该设备通过 tcp 连接到我的 windows 计算机上的 c++ win32 程序,并发送鼠标光标应该移动的位置。我正在使用 SetCursorPos 函数来设置位置,这对于控制大多数程序非常有用。但是当我尝试控制例如任务管理器时,光标不再移动。当我从任务管理器切换回其他程序时,它又可以工作了。我还尝试使用具有相同结果的 SendInput 函数。

这就是我的代码在 SendInput 中的样子:

使用 SetCursorPos 只需一行:

谁能告诉我为什么它不适用于某些程序?我知道它必须有可能做到这一点,因为我尝试了一个控制光标的智能手机应用程序,它适用于所有程序。