c# – 如何重新使用现有/已打开的Windows资源管理器窗口来启动资
发布时间:2020-12-15 21:14:55 所属栏目:百科 来源:网络整理
导读:我有一个经常使用启动explorer.exe的应用程序.我想重新使用现有/已经打开的资源管理器窗口,而不是每次启动该过程时都创建一个新窗口. 这是我的代码的样子: System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo{ UseShellE
我有一个经常使用启动explorer.exe的应用程序.我想重新使用现有/已经打开的资源管理器窗口,而不是每次启动该过程时都创建一个新窗口.
这是我的代码的样子: System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo { UseShellExecute = true,FileName = "Explorer.exe",Arguments = myDirectoryPath }; System.Diagnostics.Process.Start(info); 我没有看到command-line开关这样做.我尝试过的一种方法是简单地杀死任何一个现有的资源管理器进程并用一个新进程替换它: var processes = System.Diagnostics.Process.GetProcesses(Environment.MachineName);int kills = 0; for (int i = 0; i < processes.Length; i++) { System.Diagnostics.Process p = processes[i]; if (p.ProcessName == "explorer" && kills < 1) ++kills p.Kill(); } 但是这会导致不仅仅杀死1个进程,而且完全杀死探险器以便即使任务栏消失也会产生不良影响. 那么,如何使用现有的Explorer窗口(如果存在)来启动资源管理器? 解决方法
IShellWindows COM接口将为您提供打开资源管理器窗口的列表,您可以获取并设置任何资源管理器窗口的地址,有关C示例,请参阅
this blog entry.我怀疑.NET有一个本机实现,所以你可能需要PInvoke
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c – 当类模板存在同名时,需要范围解析运算符来调用成员函数
- c – 使用BOOST :: associative属性映射插入boost :: BIMAP
- libxml2剖析(4):XML技术概览
- iphone – registerNib:forReuseidentifier与自定义UTTabl
- c error:operator []:2次重载具有类似的转换
- vb.net版机房重构--DataGridView控件
- C# 字符串string和内存流MemoryStream及比特数组byte[]之间
- ruby-on-rails – 删除我的rails答案中不必要的HTTP标头
- c# – 在Web API和OWIN中使用简单的注射器
- drupal-7 – 聚合和压缩CSS文件drupal 7