我希望Word应用程序出现在前面,请参阅下面的代码:
string caption = wordApp.Caption;
IntPtr handler = FindWindow(null, caption);
SetForegroundWindow(handler);
wordApp.Visible = true;
我得到的错误是:
Error CS0103: The name 'FindWindow' does not exist in the current context
Error CS0103: The name 'SetForegroundWindow' does not exist in the current context
我想我错过了一个引用,即使编译器没有这么说。我是对的吗?
答案 0 :(得分:2)
由于您使用的是C#,请使用Process.GetProcessesByName(),如下所示:
Process[] processes = Process.GetProcessesByName("WINWORD");
SetForegroundWindow(processes[0].Handle);
要使用SetForegroundWindow(),您必须拥有:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
答案 1 :(得分:1)
这可能对您的问题有很大帮助:FindWindow MSDN link
包含它的库位于User32.lib
下答案 2 :(得分:1)
您需要在使用它们之前声明您的函数,我假设您要调用Windows API:FindWindow和SetForeGroundWindow。
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
您可以在MSDN文档中找到更多示例。