2010-08-07 62 views
16

我想送CTRL一个(选择所有的应用程序在这种情况下,词,但尝试,因为我可能它不工作)我已经尝试了不少组合但都无济于事,有什么想法?的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)"); 

回答

4

你尝试

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

尝试这样做,这是行不通的。 尝试使用Alt键连击,他们不给我任何工作.... – ALI 2010-08-07 16:36:15

4

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

SendKeys.Send("^a"); 

我不知道,但似乎

SendKeys.Send("^A"); 

意味着按Ctrl ++一个。至少它在某些应用程序中以这种方式工作。

+0

的移码+,所以如果你想大写字母A,你就必须做(“+ ^一”) – Dman 2015-12-24 16:28:40

37

要指定任何组合SHIFT,CTRLALT应该按住其他几个键时按下,将这些键的代码括在括号内。例如,要指定按住SHIFTEC被按下,请使用+(EC)。要指定按住SHIFT 按下ē,其次是Ç没有SHIFT,使用+EC

答案是:

SendKeys.Send("^(a)"); 
+1

这实际上是最好的答案......不幸的是,OP没有选择一个。 – NotCoffeeTable 2013-05-10 21:55:23

+0

这不是答案,它明确指出,如果控制键只需要一个键,则不需要括号。 – EliSherer 2014-10-23 08:58:36