SendKeys无法使用Google Chrome

时间:2017-12-18 22:07:05

标签: c# winforms sendkeys

我有一个简单的WinForm应用程序,带有一个按钮,然后单击我试图在已经运行的Chrome Chrome上填充搜索关键字(在chrome窗口上)。当我执行此程序并单击按钮时,Chrome窗口会显示(从最小化恢复),但焦点仍然在我的WinForm应用程序上,SendKeys不起作用。

有更好的方法吗?

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        [DllImport("User32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName,
            string lpWindowName);

        [DllImport("User32.DLL")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            IntPtr chromeHandle = FindWindow("Chrome_WidgetWin_1", null);
            if(chromeHandle == IntPtr.Zero)
            {
                MessageBox.Show("Chrome is not running");
                return;
            }
            SetForegroundWindow(chromeHandle);
            SendKeys.SendWait("search term");
        }

    }
}

0 个答案:

没有答案