我在使用“Process.CloseMainWindow()”方法尝试通过其他应用程序关闭Windows资源管理器(而非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”
任何帮助将不胜感激! 敬礼!
答案 0 :(得分:1)
我相信这是因为探索的主窗口被认为是shell。但是你可以杀死进程,但是Windows会立即启动它。