I'm trying to send CTRL A (select all to开发者_运维知识库 an app in this case word but try as I might it doesn't work) I've tried quite a few combinations but all to no avail, any ideas?
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)");
To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down SHIFT while E and C are pressed, use +(EC)
. To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use +EC
.
Answer is:
SendKeys.Send("^(a)");
I got same problem I want select text an input text control
SendKeys.SendWait("^A") doesn't works nor Sendkeys.SendWait "^A" doessn't works
Sendkeys.SendWait("^a") works ok
for more info: http://www.autoitscript.com/autoit3/docs/functions/Send.htm
hth
SendKeys is case-sensitive. Try this:
SendKeys.Send("^a");
I'm not sure, but it seems like
SendKeys.Send("^A");
means Ctrl+Shift+A. At least it does work this way in some applications.
Did you try
SendKeys.SendWait("^{A}");
been through this.
The only working solution:
Find your element where you want to enter text
element.SetFocus();
Thread.Sleep(2000);
SendKeys.SendWait("^{HOME}"); // Move to start of control
SendKeys.SendWait("^+{END}"); // Select everything
SendKeys.SendWait("{DEL}");
SendKeys.SendWait("Value");
精彩评论