问题标签 [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.
c# - 在外部程序的活动窗口中输入一个字符
注意-这个问题不是重复的,因为我在问如何发送到单击按钮时处于活动状态的窗口。链接到的答案将找到一个窗口并使其处于活动状态。那不一样。
在 C# 中,使用 Winforms,当单击按钮时,如何将字符发送到活动窗口,例如记事本?
我有一个带有按钮的表单。手动打开记事本(不是从我的程序中)后,我想单击记事本窗口以激活它,然后单击我的按钮并让它在该活动窗口记事本中输入一个字符。
我可以使用本机 .NET 功能并执行Sendkeys.Send("A")
或者我可以使用可通过 NuGet [1] 安装的 InputSimulator 包来完成这两行
无论哪种方式,他们都不会将字符放入记事本中。这可能部分是因为按钮获得焦点。
我可以做一个这里提到的解决方案,让按钮不聚焦(尽管它不会阻止我的程序窗口聚焦)
如何创建一个可以在不失去焦点的情况下将键发送到控件的按钮 - 虚拟键盘
我可以打电话
使用该技术,我可以单击表单上的文本框,然后单击我的按钮可以将文本写入该文本框,而不会失去文本框的焦点。
但这不适用于外部记事本窗口
因此,如果启动记事本(start..run..notepad),然后单击我程序中的按钮,它会将焦点从记事本上移开,并且不会在该活动的记事本窗口中输入文本。
[1]通过 NuGet 安装 InputSimulator,没有可访问的成员 和 https://inputsimulator.codeplex.com
c# - 当用户单击 Webbrowser 控件外部时,如何防止 Webbrowser 控件内的文本框失去焦点?
我有一个 winform 应用程序,其中有一个Virtual Keypad。以下代码(使用textBox1
as winform 文本框可以正常工作:
但问题是我将在不是 Windows 窗体控件的文本框中输入内容。我将输入一个文本框,该文本框是网页浏览器中加载的网页的一部分。因此我没有上下文。我不能明确地将焦点转移到它上面。我该怎么办?每次我单击我设计的虚拟键时,它都会将焦点从 webcontrol 的文本框中移出,因此不会输入。
c# - 发送密钥失败 - 窗口处于活动状态
我正在使用InputSimulator向活动 Windows 发送击键 (ctrl+c) 为了实现这一点,我将自己的表单最小化,并使用 WIN32 API 和 SetForegroundWindow 设置我希望将密钥发送到前台的应用程序。现在这一切都适用于大多数应用程序。但是,例如,我遇到了 Windows Mail 应用程序的问题。在发送 keycombo 之前,GetForegroundwindow 向我保证邮件应用程序确实处于活动状态。但是不执行复制命令。如果我在发送命令之前等待 1-2 秒(使用 Thread.sleep),它就可以工作。有谁知道如何解决这个问题?
使我的表单处于非活动状态
设置前景和按键
c# - InputSimulator 在重新激活 WPF 窗口后将密钥发送到错误的进程
问题:
我有一个活动的 WPF 窗口。在创建时,进程被设置为窗口的所有者。现在,当在 WPF 窗口上触发 Key-Down 事件时,应将 Key 传递给主进程。
首先,我使用 SetForegroundWindow() 将焦点设置为主进程。密钥是使用 InputSimulator 发送的。
到目前为止,这按预期工作。但是,在发送 Key 之后,Wpf 窗口应该重新获得焦点,以便它可以捕获下一次按键。
我正在尝试在 WPF 窗口上调用 Activate()。现在出现的问题是 InputSimulator 发送的 Key 不再传递给主进程,而是被 WPF Window 捕获。
代码
继承人的代码:
这是Window的创建
WindowWrapper 的实现:
还有我的 Window.KeyDown 处理程序:
c# - InputSimulator 在 2 点之间平滑线性鼠标移动
我正在努力弄清楚为什么下面的函数只会将我的鼠标从 0、0 屏幕坐标移动到我的最终目的地,即使 Cursor.Position 正在返回正确的屏幕坐标。如果有人能启发我,我将不胜感激。
c# - 无法在我的 C# 项目中访问 Windows 输入模拟器
在研究了如何通过模拟键盘来控制其他应用程序之后,很多人建议我使用“inputsimulator” CodePlex
我解压缩文件夹并在我的 C# 项目中查找要引用的 .dll 文件,但找不到 inputsimulator.dll 文件。
这是我到目前为止所拥有的:
这是错误消息:
如何参考InputSimulator
?
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 键(模拟打开开始菜单),这在相关机器上运行良好。
再次,任何帮助将不胜感激。
提前致谢。
c# - C# InputSimulator:从组合框中选择键
我的数组中填充了来自 InputSimulator 的键名。
之后,我用这个字符串填充组合框。有 3 个组合框。
所以,我想使用这样的功能:
是否可以使用在组合框中选择的键名填充此函数的参数?
这对我来说很明显,如何使用 SendKeys 函数来完成,因为它使用字符串作为参数,但现在我需要使用 InputSimulator 来完成。
c# - 如何将 Ctrl + G 发送到另一个应用程序?
我正在尝试使用带有 ForegroundWindow 的 InputSimulator 发送 CTRL + G 键,但它不起作用。使用其他键,它可以按预期工作,例如 Ctrl + A 或 Ctrl + C
我尝试过:
或者
也试试:
我什至尝试过 keybd_event (user32.dll 函数)