[英]C# - Process.Start a ClickOnce application? What URL?
我已经为WPF做了3个月的新手,并尝试构建一个有趣的appy应用程序(app name launcher type thingie by name)。
我似乎无法按进程名称启动ClickOnce应用程序。
换一种说法:
我读过你应该用URL调用它吗? 但是,您在哪里找到已安装的clickonce应用程序的URL?
理想情况下,我想每分钟刷新一次安装在用户系统上的应用程序列表(程序文件&clickonce和AIR客户端),并对类型等进行模糊搜索。
非常感谢。
您甚至不需要解析启动文件夹。 该创业公司的位置在这里:
shortcutName =
string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
"\\", publisher_name, "\\", product_name, ".appref-ms");
其中publisher_name和product_name是发布属性中“选项”对话框中设置的名称。
ClickOnce应用程序(在发布应用程序时设置)有两种安装在开始菜单上的应用程序和只能从Web URL运行的应用程序。
安装在开始菜单中的应用程序可以在开始菜单文件夹下找到(令人惊讶),它们具有APPREF-MS扩展名的特殊类型的快捷方式。
您可以使用Process.Start运行APPREF-MS文件。
配置为仅从Web URL运行的应用程序,您必须从Web URL运行它们。
Process.Start相当于执行Start,Run ..然后在那里输入一些文本。 您必须输入可使用PATH环境变量找到的可执行文件,或者您可以指定指向要运行的.application文件的URL。 例如http://publish.url.com/publish/myapp.application 。
希望有所帮助!
要添加到@Kieren的答案: Process.Start("Firefox")
工作原理是Firefox将自己安装在HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\firefox.exe
中的HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\firefox.exe
项中。
您要查找的URL是用于安装的URL。 是的,听起来很奇怪。 ClickOnce有点奇怪。 不幸的是,ClickOnce不会安装到Program Files文件夹中,而是将其自身隐藏在用户的AppData文件夹中。 取决于您是通过Web安装还是通过CD / DVD选项安装,并将确定解决此问题的难易程度。 祝好运!
Imho,最好的方法是:
Process.Start("rundll32.exe", "dfshim.dll,ShOpenVerbApplication " + ApplicationURL);
以下是如何启动clickonce应用程序,它每次都有效。
System.Diagnostics.Process.Start("http://webinstalls.somecompany.com/LApproval/StartApproval.application");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.