加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何将F4键发送到C#中的进程?

发布时间:2020-12-15 06:57:22 所属栏目:百科 来源:网络整理
导读:我正在从 Windows应用程序启动一个进程.当我按下一个按钮时,我想模拟按F4键.我怎样才能做到这一点? [稍后编辑]我不想以我的形式模拟F4键的按压,但在我开始的过程中. 解决方法 要将F4键发送到另一个进程,您将必须激活该进程 http://bytes.com/groups/net-c/2
我正在从 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:WindowsNotepad.exe";
                notepad.Start();

                // Need to wait for notepad to start
                notepad.WaitForInputIdle();

                IntPtr p = notepad.MainWindowHandle;
                ShowWindow(p,1);
                SendKeys.SendWait("ABC");
            }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读