首页 新闻 搜索 专区 学院

怎样通过注册表启动某个程序,要求是:点击winfrom上按钮,启动注册表中某个程序(路径是死的),

0
悬赏园豆:5 [已解决问题] 解决于 2015-09-23 14:25

以前做过BS端启动CS端,自定义协议,<a href="aaa://hello">SIMU</a>,

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\simu]
"URL Protocol"="C:\\simu\\Simu.exe"
@="SimuProtocol"
"URL Protocol"="C:\\simu\\Simu.exe"

[HKEY_CLASSES_ROOT\simu\DefaultIcon]
@="C:\\simu\\Simu.exe,1"

[HKEY_CLASSES_ROOT\simu\shell]
[HKEY_CLASSES_ROOT\simu\shell\open]

[HKEY_CLASSES_ROOT\simu\shell\open\command]
@="\"C:\\simu\\Simu.exe\" \"%1\""

就行了,现在问题是CS端怎么启动注册表某个程序

Mask1的主页 Mask1 | 初学一级 | 园豆:113
提问于:2015-07-09 08:48
< >
分享
最佳答案
0

从注册表读出路径,然后 shellexecute。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2015-07-09 09:18

现在新的问题出现了,就是虽然能利用进程启动某个程序,但是用户自己安装的程序怎么获取,在打包部署中的下一步中加代码获取到用户的安装路径,这个有可能性没

Mask1 | 园豆:113 (初学一级) | 2015-07-09 09:32

@Mask-male: 但是用户自己安装的程序怎么获取 -> 读用户的思想。

在打包部署中的下一步中加代码获取到用户的安装路径,这个有可能性没 ——〉 有。

Launcher | 园豆:45045 (高人七级) | 2015-07-09 09:41

@Launcher: 是添加自定义操作吗,

Mask1 | 园豆:113 (初学一级) | 2015-07-09 10:02

@Mask-male: 是

Launcher | 园豆:45045 (高人七级) | 2015-07-09 10:16

@Launcher: 我不知道该怎么弄了,

Mask1 | 园豆:113 (初学一级) | 2015-07-09 10:46

@Launcher: 感觉挺复杂的,我用这个方法不知道行不行

我不知道这样行不行

Mask1 | 园豆:113 (初学一级) | 2015-07-09 11:19

@Mask-male: 你最初的截图是 Click-Once ,所以我给你如何在 Click-Once 中自定义安装。你现在给的截图是VS 2010 的安装部署项目,那么请看这里:https://msdn.microsoft.com/en-us/library/vstudio/bbd7cck3(v=vs.100).aspx

Launcher | 园豆:45045 (高人七级) | 2015-07-09 11:40

@Launcher: 可以私聊吗,154128293我的QQ

Mask1 | 园豆:113 (初学一级) | 2015-07-09 14:10

@Mask-male: 有问题就在这里问吧!

Launcher | 园豆:45045 (高人七级) | 2015-07-09 14:13

@Launcher: 好吧,我仿照https://msdn.microsoft.com/zh-cn/library/vstudio/dd997001(v=vs.120).aspx这上面说明,新建类MyInstaller,写入方法InstallApplication,在主程序写入调用。但是好像不是我想要的,我需要在写入路径下一步记录路径的,但这个说明没有提到路径

Mask1 | 园豆:113 (初学一级) | 2015-07-09 14:33

@Launcher: 

Mask1 | 园豆:113 (初学一级) | 2015-07-09 14:36

@Mask-male: 你想在点击“下一步”后先执行什么操作?能描述清楚点不?

Launcher | 园豆:45045 (高人七级) | 2015-07-09 14:57

@Launcher: 我想要记录用户的安装路径,好像要用到Install类,

Mask1 | 园豆:113 (初学一级) | 2015-07-09 15:00

@Launcher: 现在上面让我做个例子,打包部署一个软件,并且利用另一个软件获取这个软件的安装目录,本来是要调用注册表的(都在一个位置),但是不熟,我想利用用户下一步的操作,获取安装路径,然后启动进程,我不知道我这样做能不能实现,这两种方法你觉得那种简单呢

Mask1 | 园豆:113 (初学一级) | 2015-07-09 15:08

@Mask-male: 

iphm_GetManifestCompleted

iphm_DownloadApplicationCompleted

这两个方法,你告诉它们分别是在什么时候被调用的?

Launcher | 园豆:45045 (高人七级) | 2015-07-09 15:10

@Mask-male: “我想利用用户下一步的操作,获取安装路径,然后启动进程,我不知道我这样做能不能实现”,你是想让安装程序安装完成后自动启动被安装的程序,还是安装程序安装完成后,你再鼠标双击另外一个程序去启动被安装的程序?

Launcher | 园豆:45045 (高人七级) | 2015-07-09 15:14

@Launcher: 后面一个,一个安装程序安装完成后,另一个去启动这个程序,那就应该要用到注册表了吧,

Mask1 | 园豆:113 (初学一级) | 2015-07-09 15:20

@Mask-male: 你先明白两点:

https://msdn.microsoft.com/zh-cn/library/vstudio/dd997001(v=vs.120).aspx

这个是用于 Click-Once 部署的程序的自定义安装和更新操作。

https://msdn.microsoft.com/en-us/library/vstudio/bbd7cck3(v=vs.100).aspx

这个是用于你用 VS 2010 创建的安装部署程序的自定义安装操作。

能把这两个搞清楚不?

然后我再问,所有的安装程序都一定是你们自己制作的吗?

Launcher | 园豆:45045 (高人七级) | 2015-07-09 16:09
其他回答(1)
0

想复杂了,直接进程就了,

System.Diagnostics.Process.Start(@"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\WindowsFormsApplication1.exe");

问题没说清楚

Mask1 | 园豆:113 (初学一级) | 2015-07-09 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册