C# 将SendKeys()发送到已停用的表单
我有一个自动模拟击键的应用程序。我正在为此使用以下代码:C# 将SendKeys()发送到已停用的表单,c#,.net,windows,winforms,input,C#,.net,Windows,Winforms,Input,我有一个自动模拟击键的应用程序。我正在为此使用以下代码: public void goNextPage() { WindowsInput.InputSimulator ip = new WindowsInput.InputSimulator(); ip.Keyboard.ModifiedKeyStroke(new[] { WindowsInput.Native.VirtualKeyCode.CONTROL, WindowsInput.Native.VirtualKeyCode.M
public void goNextPage()
{
WindowsInput.InputSimulator ip = new WindowsInput.InputSimulator();
ip.Keyboard.ModifiedKeyStroke(new[] { WindowsInput.Native.VirtualKeyCode.CONTROL, WindowsInput.Native.VirtualKeyCode.MENU }, WindowsInput.Native.VirtualKeyCode.VK_Y);
Thread.Sleep(5000);
}
是SendKeys()
的替代方案。我转向这一点是因为我在使用SendKeys()
时遇到了同样的问题
问题是,有时用户需要最小化模拟键的形式。我尝试最小化表单,但它没有将密钥发送到其所有者表单,而是将密钥发送到新激活的表单或活动应用程序,如VisualStudio和Google Chrome。例如:当我开始在Chrome的地址栏中键入内容,同时我的应用程序发送SHIFT
key时,我键入的数据被转换为大写字母或数字键上的符号
那么,是否可以将密钥发送到停用的表单?还是违反了操作系统规则?是否可以覆盖它?如果要设置特定窗口的文本,例如表单中的特定文本框、浏览器的地址栏或记事本的文本编辑器,则需要找到窗口的句柄,然后在SendMessage()或PostMessage()向该句柄发送消息,您可以向该窗口发送
WM_SETTEXT
消息。看一看。@RezaAghaei不,我不想设置文本,我想用CTRL+Y组合键看一看。