我正在从
Windows应用程序启动一个进程.当我按下一个按钮时,我想模拟按F4键.我怎样才能做到这一点?
[稍后编辑]我不想以我的形式模拟F4键的按压,但在我开始的过程中.
解决方法
要将F4键发送到另一个进程,您将必须激活该进程
http://bytes.com/groups/net-c/230693-activate-other-process建议:
>获取Process.Start返回的类实例
> Query Process.MainWindowHandle
>调用非托管Win32 API函数“ShowWindow”或“SwitchToThisWindow”
然后,您可以使用System.Windows.Forms.SendKeys.Send(“{F4}”),作为Reed建议将击键发送到此进程
编辑:
下面的代码示例运行记事本并发送“ABC”到它:
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.Forms; namespace TextSendKeys { class Program { [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd,int nCmdShow); static void Main(string[] args) { Process notepad = new Process(); notepad.StartInfo.FileName = @"C:\Windows\Notepad.exe"; notepad.Start(); // Need to wait for notepad to start notepad.WaitForInputIdle(); IntPtr p = notepad.MainWindowHandle; ShowWindow(p,1); SendKeys.SendWait("ABC"); } } }