Bri*_*ker 3 c# windows explorer process
我有一个程序打开一个浏览器窗口到某个文件夹,但我想在浏览器窗口关闭后立即执行操作,但如果我使用以下代码:
Process proc = Process.Start("explorer.exe", "D:\\");
proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
它根据需要打开资源管理器窗口,但WaitForExit命令没有任何效果,它只是直接通过它.
是否有一种不同的方式打开资源管理器窗口,当用户关闭时,它将能够让我知道?
The Old New Thing很好地解释了这个问题:
WaitForSingleObject立即返回的原因是Explorer是一个单实例程序(好的,有限实例).当您打开资源管理器窗口时,请求将被移交给正在运行的资源管理器副本,并且您启动的资源管理器副本将退出.这就是你的WaitForSingleObject立即返回的原因.
他提供了一些解决方案,你大概可以使用(有一些大量使用的PInvoke的),喜欢使用像这样.
最后,您可能更容易使用其他类型的文件浏览器,可能来自您可以更多控制的C#库,而不是资源管理器.
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |