【发布时间】:2010-04-05 15:06:58
【问题描述】:
我在尝试使用“Process.CloseMainWindow()”方法通过另一个应用程序关闭 Windows Explorer(不是 Internet Explorer)窗口时遇到问题;因为它不会关闭资源管理器窗口,它会尝试关闭整个 Windows(操作系统),顺便说一下,Windows XP。
代码如下:
[DllImport("user32.dll")]
static extern int GetForegroundWindow();
[DllImport("user32.dll")]
private static extern UInt32 GetWindowThreadProcessId(Int32 hWnd, out Int32 lpdwProcessId);
public String[] exeCommand()
{
try
{
//Get App
Int32 hwnd = 0;
hwnd = GetForegroundWindow();
Process actualProcess = Process.GetProcessById(GetWindowProcessID(hwnd));
//Close App
if (!actualProcess.CloseMainWindow())
actualProcess.Kill();
}
catch { throw; }
return null;
}
假设“actualProcess”是“explorer.exe”
任何帮助将不胜感激! 致敬!
【问题讨论】:
-
Explorer.exe 可以显示多个窗口。您需要缩小您可能要关闭的特定问题的范围。