我有一个简单的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");
}
}
}