我有一個頻繁使用啓動explorer.exe的應用程序。我想重新使用現有的/已經打開的瀏覽器窗口,而不是每次啓動過程時創建一個新窗口。如何重新使用現有/已打開的Windows資源管理器窗口啓動資源管理器
這裏是我的代碼如下所示:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo
{
UseShellExecute = true,
FileName = "Explorer.exe",
Arguments = myDirectoryPath
};
System.Diagnostics.Process.Start(info);
我沒有看到一個command-line開關來做到這一點。一種方法我試過是簡單地殺死任何1個現有Explorer進程,並用一個新的更換:
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窗口(如果存在)來啓動Explorer?
如果您的用戶有一個資源管理器窗口打開到一個目錄由於其他原因,並不想成爲從該目錄中取出?你認爲這種方法會導致你的用戶感到沮喪嗎? – Phil 2011-01-28 17:31:01
這是一個值得關注的問題,但我的用戶表示他們只是說他們想重新使用任何現有的資源管理器窗口,而不是讓我的應用每次都打開新的副本。否則,我不得不確定哪些瀏覽器窗口是由我的應用程序打開的,只能重新使用這些窗口。 – 2011-01-28 18:41:31