我正在使用System.Diagnostics.Process.Start在另一臺域計算機上啓動遠程應用程序。從C#啓動遠程進程的問題#
不幸的是,如果遠程進程已經在運行,但是在遠程機器桌面的後臺,應用程序不會使用Process.Start獲得焦點。
問題1:是否有另一種API或機制來強制遠程應用程序獲得焦點或閃光以獲得用戶的注意力?
我注意到的另一個問題是,如果遠程進程已經在運行,除了原始執行程序之外,還可能執行一個新的實例。這違反MSDN文檔它說:
「如果該進程已在運行,沒有額外的進程資源開始取而代之,現有工藝資源被重複使用,沒有新的進程組件被創建在這種情況下,代替。返回一個新的Process組件,Start將返回null給調用過程。「
問題2:有沒有人找到一種方法來阻止應用程序的第二個實例在這種情況下推出? WMI是用於遠程啓動應用程序的更好選擇嗎?
你可以修改你試圖調用(或願意)的應用程序的代碼嗎? – PedroC88
不,不幸的是它是第三方顯微鏡控制器/圖像記錄儀。我的設置是一個帶2臺HP TouchSmart PC的地質實驗室。我的應用程序運行在左側顯示器上,當用戶點擊/觸摸顯微鏡按鈕時,它最好在右側顯示器上啓動(或提出)第三方應用程序。 – retrodrone
噢,好吧,我正在建議將Mutex類作爲一種確保不多於1個應用程序實例同時運行的方法。但是如果你不能修改它,那麼我的雙手就會被綁住。 – PedroC88