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