Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将SendKeys()发送到已停用的表单_C#_.net_Windows_Winforms_Input - Fatal编程技术网

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组合键看一看。