Tag: sendkeys

使用SendKeys.Send()模拟右Shift + Ctrl

我正在尝试将Shift + Ctrl发送到我的RichTextBox 。 但默认情况下它会发送左键。 SendKeys.Send(“^+”); 无论如何都要模拟右Shift + Ctrl ?

C#中的SendKeys.SendWait方法,模拟CTRL + C.

我正试图在按下C时按住CTRL,但我无法正常工作。 我已经阅读过SendKeys Class但仍然无效。 多数民众赞成我尝试过的: SendKeys.SendWait(“^C”); SendKeys.SendWait(“{^C}”); SendKeys.SendWait(“^{C}”); SendKeys.SendWait(“^(C)”); SendKeys.SendWait(“(^{C})”);

如何在非表单应用程序中生成击键

所以我有一个庞大的程序,并决定我应该在一个单独的线程中运行其中一个方法。 所以我把方法放在一个单独的类中,在我的表单上激活它。 它似乎工作正常我想要它,直到它分手它给我这个错误: SendKeys无法在此应用程序内运行,因为应用程序未处理Windows消息。 更改应用程序以处理消息,或使用SendKeys.SendWait方法。 我试着在线寻找答案。 我想我看到了一些关于SendKeys如何只在Form或其他东西中工作的东西。 任何人都可以告诉我一种不使用SendKeys来模拟击键的方法,或者是一种让SendKeys在不同的非forms线程中工作的方法吗?

VkKeyScanEx / Sendinput替代unicode?

我正在尝试发送一个角色。 因此,我使用位于user32.dll中的本机方法GetKeyboardLayout和VkKeyScanExW来获取系统当前键盘布局的虚拟键代码(以及shift和control-state)。 然后,我使用user32.dll的本机方法SendInput将此虚拟键码发送到应用程序。 一切都很好 – 除了欧元符号。 当我将此字符作为参数传递给VkKeyScanExW时,它返回-1,这意味着找不到。 在我的键盘上使用Ctrl + Menu + E(德语布局)定位 现在我假设这是因为欧元符号是unicode符号而不是映射在ascii-layout中。 我读Sendinput也允许使用硬件扫描码的unicode模式。 所以我希望使用SendInput的unicode模式来解决我的问题。 但我想我的虚拟代码不是硬件扫描代码,因为unicode范围更宽。 我在哪里可以找到如何通过SendInput将unicode字符(例如€)发送到另一个控件/窗口的示例。 MSDN和pinvoke.net不提供有用的示例。

C#SendKeys.SendWait到另一个进程的对话框(notepad.exe)

我正在尝试在C#中执行以下操作: 打开一个新进程(notepad.exe) 输入一些文字(使用SendKeys) 关闭记事本(处理任何确认对话框) 这就是我得到的 Process p = new Process(); p.StartInfo.Filename = “notepad.exe”; p.Start(); // use the user32.dll SetForegroundWindow method SetForegroundWindow( p.MainWindowHandle ); // make sure notepad has focus SendKeys.SendWait( “some text” ); SendKeys.SendWait( “%f” ); // send ALT+f SendKeys.SendWait( “x” ); // send x = exit // a confirmation dialog appears 所有这一切都按预期工作,但现在我发送ALT + f […]

SendKeys没有使用Fraps

对于那些不熟悉fraps的人。 它的屏幕录制程序,您可以使用快捷键触发。 我正在使用SendKeys.SendWait调用触发fraps。 我注意到这不是触发fraps来录制任何video,但是如果我手动按下该键,则会记录fraps。 有没有办法弄清楚fraps是否这样做是不允许我这样做的? 我能够启动程序并浏览其菜单,所以我很确定我正在使用SendKeys。

无法在C#中使用Sendkeys发送下划线?

我一直很无聊,所以当我按下ctrl + shift + L时,我试着编写一个程序来写一个不赞成的笑脸(ಠ_ಠ脸)。 现在一切正常,除了笑脸中的下划线,根本不会写。 这是我首先使用的: SendKeys.Send(“ಠ_ಠ”); 我尝试了各种各样的事情,比如在下划线周围添加{}括号,当然我也用Google搜索了。 有什么方法可以让下划线发送出去吗? 提前致谢。

通过c#按下Internet Explorer的“文件下载对话框”的保存按钮

我正在研究Internet Explorer自动化,其中一部分涉及从asp 2.0上托管的站点下载文件并使用基于表单的身份validation,因此为了创建端到端自动化,我使用了浏览器自动化。 我能够到达我可以点击一个带有浏览器“文件下载”对话框的URL的步骤,然后我试图利用SendKeys点击保存按钮,但无济于事不工作 下面是我使用FindWindow方法获取文件下载对话框的hWnd指针的代码,然后使用setActiveWindow使其成为活动窗口,以便SendKeys命令对其起作用,然后使用SendKeys我尝试发送Alt +但它没有用。 我观察到,Tab,Escape和Enter工作正常,但是Enter on Save按钮不起作用。 [DllImport(“user32.dll”, SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport(“user32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport(“user32.dll”, SetLastError = true)] static extern IntPtr SetActiveWindow(IntPtr hWnd); private void Form1_Load(object sender, EventArgs e) { IntPtr hwnd = FindWindow(null, “File Download”); IntPtr nullptr = (IntPtr)0; if […]

如何从当前的.NET表单/应用程序发送Keys F12

我很确定以下按钮激活的表单代码应该在我的C#应用​​程序中引发Control-F12: 的SendKeys( “^ {F12}”); 但它似乎没有继续到Windows shell并激活另一个正在监听它的程序。 我的键盘确实有效。 似乎sendkeys在某个地方被截获,而不是以实际模拟击键的方式发送。 有帮助吗?

在C#中发送密钥“挂起”PC

当我在Form_Shown() send key并将Breakpoint放在Form_KeyDown()时,我的PC挂起 private void Form1_KeyDown(object sender, KeyEventArgs e) { //breakpoint here if (e.KeyCode == Keys.A) { MessageBox.Show(“caught”); } } private void Form1_Shown(object sender, EventArgs e) { SendKeys.Send(“A”); }