2009-06-10 110 views
3

我正嘗試通過使用WMI的遠程計算機上的.appref-ms快捷方式啓動ClickOnce應用程序,但無法成功。下面的代碼工作正常,如果我嘗試運行notepad.exe。如何在遠程計算機上運行ClickOnce應用程序(.appref-ms)?

ManagementPath pm = new ManagementPath(@"\\server\root\cimv2:Win32_process"); 
ManagementClass processClass = new ManagementClass(pm); 

//Get an input parameters object for this method 
ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); 

//Fill in input parameter values 
inParams["CommandLine"] = @"C:\Documents and Settings\Start Menu\Programs\New\New App.appref-ms"; 

//Execute the method 
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null); 

回答

0

你得到的錯誤是什麼。

順便說一句,似乎有兩個問題與您使用的命令行路徑。

  1. 開始菜單文件夾IMO位於C:\ Documents and Settings \「Usernamehere \」\ StartMenu。
  2. 我不確定,但我認爲你不能遠程運行一個位於用戶配置文件中的程序。嘗試將程序安裝到其他位置,如c:\ program files,然後嘗試調用它。

除此之外,如果你提到了你正在得到的確切的錯誤,那麼它將有助於診斷問題。

+0

嗨阿米爾 對於點1有用戶名我剛剛從代碼中刪除它。 現在我已經把新App.appref-ms放在C:dive中,但仍然無法啓動它。我得到錯誤代碼「8」,意思是「未知失敗」,使用下面的代碼 ManagementBaseObject outParams = processClass.InvokeMethod(「Create」,inParams,null); Console.WriteLine(「process returned:」+ outParams [「returnValue」]); – 2009-06-10 09:39:40

2

嘗試通過rundll32啓動.appref-MS快捷:

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbShortcut ""C:\New App.appref-ms""; 

或者,而不是依靠快捷的道路上,你可以使用應用程序的部署URL(您可以通過打開.appref-看到它在文本編輯器ms文件):

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbApplication http://github-windows.s3.amazonaws.com/GitHub.application"; 

記住Win32_Process.Create不能遠程創建互動過程。

相關問題