c# - 如何在远程计算机上运行 ClickOnce 应用程序 (.appref-ms)?

标签 c# .net wmi clickonce remote-access

我正在尝试使用 WMI 在远程计算机上通过 .appref-ms 快捷方式启动 ClickOnce 应用程序,但无法成功。如果我尝试运行 notepad.exe,下面的代码工作正常。

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);

最佳答案

尝试通过 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 无法远程创建交互式进程。

关于c# - 如何在远程计算机上运行 ClickOnce 应用程序 (.appref-ms)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/974267/

相关文章:

.net - 是否有 ECMA-335 CLI 规范的 HTML 版本?

c# - 使用没有魔术字符串的 ViewModels 的 MVC 下拉列表

c# - 没有编码的 ASP.NET MVC Razor 渲染

c# - 如何在 Linq to SQL 中添加日期

.net - 函数未被调用指定次数

c# - 如何以编程方式检查 SMB 连接是否已加密?

python - 通过 WMI 脚本关闭 Windows 机器

c++ - 如何获取数据 IWbemClassObject **

c# - 如何在不接收空字符串的情况下获取主板ID?

c# - 常用操作的图标与文本