如何监控启动“;dllhost.exe”;
本文关键字:dllhost exe 启动 何监控 监控 | 更新日期: 2023-09-27 18:20:48
已更新
我有一个与Process.Start();
有关的问题我的程序将文件作为进程启动,如下所示:
Process processMonitor = new Process();
processMonitor.StartInfo.FileName = filePath; // Example: @"C:'test.txt"
processMonitor.StartInfo.CreateNoWindow = true;
processMonitor.Exited += new EventHandler(Process_Exited);
processMonitor.EnableRaisingEvents = true;
processMonitor.Start();
// Handle Exited event and display process information.
private void Process_Exited(object sender, EventArgs e)
{
// This code is called on every exit, except images: (Windows Photo Viewer, *jpg, *png, *bmp etc.)
}
这成功地启动了具有正确文件的进程notepad.exe。捕获Exited事件也可以,所以基本上我已经准备好了监视进程的关闭事件的一切。
现在针对问题
当做完全相同的事情,但现在对于图像:
processMonitor.StartInfo.FileName = filePath; // Example: @"C:'test.jpg"
这不成功。。进程启动得很完美,但我无法检测进程是否已关闭。一项小研究表明,一个名为的过程
DLLHOST.EXE(COM代理)
已启动,并且我无法检测到此进程的Exited事件。
有人能帮我吗,或者至少给我指明正确的方向?
如果所有其他都不起作用,您可以查看WMI:http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx-这将需要你做一些包装工作(或者使用包装器,比如这里的包装器:http://www.codeproject.com/Articles/21971/WMI-Interface-for-NET)
另一个可以作为最后手段和变通方法使用的选项是轮询流程状态,但这确实不建议用于大多数项目,而且听起来肯定不像是你想在项目中做的事情。
我认为这与图像的性质有关。打开.txt文件将打开记事本,而打开.jpg文件将打开查看器。有什么方法可以进入查看器本身吗?