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

发布于 2024-07-23 12:05:26 字数 626 浏览 6 评论 0原文

我尝试使用 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);

I am trying to launch a ClickOnce application via an .appref-ms shortcut on a remote machine using WMI, but cannot succeed. The below code works fine if I try to run 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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

得不到的就毁灭 2024-07-30 12:05:26

尝试通过 rundll32 启动 .appref-ms 快捷方式:

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

或者,您可以使用应用程序部署 URL,而不是依赖快捷方式路径(您可以通过在文本编辑器):

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

请记住,Win32_Process.Create 无法远程创建交互式进程。

Try launching the .appref-ms shortcut via rundll32:

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

Alternatively, instead of relying on the shortcut path, you could use the application deployment URL (you can see it by opening the .appref-ms file in a text editor):

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

Keep in mind that Win32_Process.Create cannot create interactive processes remotely.

帅冕 2024-07-30 12:05:26

您遇到的错误是什么。

顺便说一句,您使用的命令行路径似乎有两个问题。

  1. 开始菜单文件夹 IMO 位于 C:\Documents and Settings\"Usernamehere"\StartMenu 中。
  2. 我不确定,但我认为您无法远程运行位于用户配置文件内的程序。 尝试将该程序安装到其他位置,例如 c:\program files,然后尝试调用它。

除此之外,如果您提到您遇到的确切错误,那么这将有助于诊断问题。

What is the error that you are getting.

BTW, there seem to be two problems with the commandline path that you are using.

  1. Start Menu folder IMO is in C:\Documents and Settings\"Usernamehere"\StartMenu.
  2. I am not sure but I think that you can't run a program remotely which lies inside a user's profile. Try installing the program to some other location like your c:\program files and then try to call it.

Apart from that, if you mention the exact error you are getting, then it would be helpful to diagnose the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文