问题标签 [inputsimulator]

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 回答
299 浏览

c# - 在外部程序的活动窗口中输入一个字符

注意-这个问题不是重复的,因为我在问如何发送到单击按钮时处于活动状态的窗口。链接到的答案将找到一个窗口并使其处于活动状态。那不一样。

在 C# 中,使用 Winforms,当单击按钮时,如何将字符发送到活动窗口,例如记事本?

我有一个带有按钮的表单。手动打开记事本(不是从我的程序中)后,我想单击记事本窗口以激活它,然后单击我的按钮并让它在该活动窗口记事本中输入一个字符。

我可以使用本机 .NET 功能并执行Sendkeys.Send("A")

或者我可以使用可通过 NuGet [1] 安装的 InputSimulator 包来完成这两行

无论哪种方式,他们都不会将字符放入记事本中。这可能部分是因为按钮获得焦点。

我可以做一个这里提到的解决方案,让按钮不聚焦(尽管它不会阻止我的程序窗口聚焦)

如何创建一个可以在不失去焦点的情况下将键发送到控件的按钮 - 虚拟键盘

我可以打电话

使用该技术,我可以单击表单上的文本框,然后单击我的按钮可以将文本写入该文本框,而不会失去文本框的焦点。

但这不适用于外部记事本窗口

因此,如果启动记事本(start..run..notepad),然后单击我程序中的按钮,它会将焦点从记事本上移开,并且不会在该活动的记事本窗口中输入文本。

[1]通过 NuGet 安装 InputSimulator,没有可访问的成员https://inputsimulator.codeplex.com

0 投票
0 回答
41 浏览

c# - 当用户单击 Webbrowser 控件外部时,如何防止 Webbrowser 控件内的文本框失去焦点?

我有一个 winform 应用程序,其中有一个Virtual Keypad。以下代码(使用textBox1as winform 文本框可以正常工作:

但问题是我将在不是 Windows 窗体控件的文本框中输入内容。我将输入一个文本框,该文本框是网页浏览器中加载的网页的一部分。因此我没有上下文。我不能明确地将焦点转移到它上面。我该怎么办?每次我单击我设计的虚拟键时,它都会将焦点从 webcontrol 的文本框中移出,因此不会输入。

0 投票
0 回答
89 浏览

c# - 发送密钥失败 - 窗口处于活动状态

我正在使用InputSimulator向活动 Windows 发送击键 (ctrl+c) 为了实现这一点,我将自己的表单最小化,并使用 WIN32 API 和 SetForegroundWindow 设置我希望将密钥发送到前台的应用程序。现在这一切都适用于大多数应用程序。但是,例如,我遇到了 Windows Mail 应用程序的问题。在发送 keycombo 之前,GetForegroundwindow 向我保证邮件应用程序确实处于活动状态。但是不执行复制命令。如果我在发送命令之前等待 1-2 秒(使用 Thread.sleep),它就可以工作。有谁知道如何解决这个问题?

使我的表单处于非活动状态

设置前景和按键

0 投票
0 回答
205 浏览

c# - 输入模拟器 TextEntry - 模拟内联

我在我的 C# 表单应用程序中使用输入模拟器。

(我使用串口执行代码)

当我执行

在记事本上,它完美模拟。

但不是在任何其他程序上,如 Gmail....

我怎样才能使它多行?

在此处输入图像描述

谢谢

0 投票
0 回答
183 浏览

c# - InputSimulator 在重新激活 WPF 窗口后将密钥发送到错误的进程

问题:

我有一个活动的 WPF 窗口。在创建时,进程被设置为窗口的所有者。现在,当在 WPF 窗口上触发 Key-Down 事件时,应将 Key 传递给主进程。

首先,我使用 SetForegroundWindow() 将焦点设置为主进程。密钥是使用 InputSimulator 发送的。

到目前为止,这按预期工作。但是,在发送 Key 之后,Wpf 窗口应该重新获得焦点,以便它可以捕获下一次按键。

我正在尝试在 WPF 窗口上调用 Activate()。现在出现的问题是 InputSimulator 发送的 Key 不再传递给主进程,而是被 WPF Window 捕获。

代码

继承人的代码:

这是Window的创建

WindowWrapper 的实现:

还有我的 Window.KeyDown 处理程序:

0 投票
2 回答
1019 浏览

c# - InputSimulator 在 2 点之间平滑线性鼠标移动

我正在努力弄清楚为什么下面的函数只会将我的鼠标从 0、0 屏幕坐标移动到我的最终目的地,即使 Cursor.Position 正在返回正确的屏幕坐标。如果有人能启发我,我将不胜感激。

取自https://stackoverflow.com/a/913703/2014393

0 投票
1 回答
964 浏览

c# - 无法在我的 C# 项目中访问 Windows 输入模拟器

在研究了如何通过模拟键盘来控制其他应用程序之后,很多人建议我使用“inputsimulator” CodePlex

我解压缩文件夹并在我的 C# 项目中查找要引用的 .dll 文件,但找不到 inputsimulator.dll 文件。

这是我到目前为止所拥有的:

这是错误消息:

如何参考InputSimulator

0 投票
0 回答
64 浏览

c# - 模拟按键

介绍:

我不是很擅长编程,只是在业余时间和工作中的小项目出现机会时尝试学习的东西。

我正在尝试创建一个基本应用程序,它模拟 (Ctrl + Win + Shift) + B 的按键,括号中的键被按住直到按下 B。

原因是我们的一些用户遇到了他们的显示器问题,重置显示驱动程序似乎可以解决问题。

编码:

我尝试了两种方法来做我想做的事:

方法一:

方法二:

问题:

现在,当我在 Visual Studio 中构建其中任何一个并运行创建的 .exe 时,我的桌面上一切正常。

我复制 exe 并在我的其他四个桌面上进行测试,其中三个可以正常工作;屏幕变为空白,显示驱动程序重置。在第四台机器上绝对什么都没有发生,我不知道为什么,所以在诊断这方面的任何帮助将不胜感激。

我试过的:

我已经尝试将 .NET 3.5.1 和 .NET 4.8 安装到有问题的机器上(因为这是我在我的机器上安装的)。

我还尝试重建专门针对广告 .NET 3.5 和 .NET 4.7.2 的应用程序,但无济于事。

除此之外,我在尝试诊断时稍微更改了代码,以便只按下 Win 键(模拟打开开始菜单),这在相关机器上运行良好。

再次,任何帮助将不胜感激。

提前致谢。

0 投票
1 回答
114 浏览

c# - C# InputSimulator:从组合框中选择键

我的数组中填充了来自 InputSimulator 的键名。

之后,我用这个字符串填充组合框。有 3 个组合框。

所以,我想使用这样的功能:

是否可以使用在组合框中选择的键名填充此函数的参数?

这对我来说很明显,如何使用 SendKeys 函数来完成,因为它使用字符串作为参数,但现在我需要使用 InputSimulator 来完成。

0 投票
1 回答
245 浏览

c# - 如何将 Ctrl + G 发送到另一个应用程序?

我正在尝试使用带有 ForegroundWindow 的 InputSimulator 发送 CTRL + G 键,但它不起作用。使用其他键,它可以按预期工作,例如 Ctrl + A 或 Ctrl + C

热键菜单选项

我尝试过:

或者

也试试:

我什至尝试过 keybd_event (user32.dll 函数)