.net – 如何以编程方式重新启动Windows资源管理器进程
发布时间:2020-12-13 20:33:52 所属栏目:Windows 来源:网络整理
导读:我正在开发一个Windows shell扩展,不幸的是,在更改DLL时,我必须重新启动Windows资源管理器(因为它将DLL保留在内存中). 我从Dino Esposito找到了这个程序,但它对我不起作用. void SHShellRestart(void){ HWND hwnd; hwnd = FindWindow("Progman",NULL ); Post
我正在开发一个Windows shell扩展,不幸的是,在更改DLL时,我必须重新启动Windows资源管理器(因为它将DLL保留在内存中).
我从Dino Esposito找到了这个程序,但它对我不起作用. void SHShellRestart(void) { HWND hwnd; hwnd = FindWindow("Progman",NULL ); PostMessage(hwnd,WM_QUIT,0 ); ShellExecute(NULL,NULL,"explorer.exe",SW_SHOW ); return; } 有人可以分享他们可以分享的东西吗? 附:我意识到我可以去任务管理器并杀死资源管理器进程,但我只是想以懒惰的方式去做.此外,这可实现自动化. P.P.S我使用.NET进行开发,但shell重启功能可以是C,C或.NET语言.它只是一个小的独立可执行文件.
一个万无一失的解决方案:
foreach (Process p in Process.GetProcesses()) { // In case we get Access Denied try { if (p.MainModule.FileName.ToLower().EndsWith(":windowsexplorer.exe")) { p.Kill(); break; } } catch { } } Process.Start("explorer.exe"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读