SendKeys Ctrl-A无法正常工作

时间:2010-08-07 09:15:07

标签: c# sendkeys

我正在尝试发送 CTRL A (在这个案例中选择所有应用程序,但尝试我可能不起作用)我试过相当多的组合,但都没有用,有什么想法吗?

        IntPtr appHandle = FindWindow(null, "Document1 - Microsoft Word");
        if (appHandle == IntPtr.Zero)
        {
            MessageBox.Show("Specified app is not running.");
            return;
        }

        SetForegroundWindow(appHandle);
        System.Threading.Thread.Sleep(500);

        //SendKeys.SendWait("111");
        SendKeys.SendWait("^A");
        //SendKeys.SendWait("^(A)"); //ctrl a
        //SendKeys.SendWait("(^A)");

5 个答案:

答案 0 :(得分:37)

要指定在按下其他几个键的同时按住 SHIFT CTRL ALT 的任意组合,请将代码括起来对于括号中的那些键。例如,要在按下 E C 时指定按住 SHIFT ,请使用+(EC)。要指定在按下 E 时按住 SHIFT ,然后按 C 而不用 SHIFT ,请使用{{1} }。

答案是:

+EC

答案 1 :(得分:13)

我遇到了同样的问题 我想选择文本输入文本控件

SendKeys.SendWait(“^ A”)不起作用,Sendkeys.SendWait“^ A”不起作用

Sendkeys.SendWait(“^ a”)正常运行

了解更多信息:    http://www.autoitscript.com/autoit3/docs/functions/Send.htm

HTH

答案 2 :(得分:4)

你试过吗

SendKeys.SendWait("^{A}"); 

答案 3 :(得分:4)

SendKeys区分大小写。试试这个:

SendKeys.Send("^a"); 

我不确定,但似乎是

SendKeys.Send("^A"); 

表示 Ctrl + Shift + A 。至少它在某些应用程序中以这种方式工作。

答案 4 :(得分:1)

通过这个。

唯一可行的解​​决方案:

在要输入文本的位置找到元素

     element.SetFocus();

     Thread.Sleep(2000);

     SendKeys.SendWait("^{HOME}");  // Move to start of control

     SendKeys.SendWait("^+{END}"); // Select everything

     SendKeys.SendWait("{DEL}"); 

     SendKeys.SendWait("Value");