VS2008创建cab后,在客户端安装时不要弹出询问路径的对话框

embest_mhq 2009-03-19 02:29:40
我的cab文件中只包含了一个dll和相关的reg信息,所以我想生成打包文件后,在客户端进行安装时,不要弹出询问安装路径的对话框。在网上搜索到的文章,可以通过修改客户端的注册表来屏蔽所弹出的对话框,但是对于要提交给用户的安装包(cab文件),我不可能去要求用户自行修改客户端的注册表。

所以询问有没有其他方法在定制cab文件时,就可以指定在安装时不弹出对话框。

使用的工具为VS2008。
客户端指的是一台装有wince6.0操作系统的测试样机。
...全文
489 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
88csdn 2009-03-20
  • 打赏
  • 举报
回复
wceload + 参数可以解决你的问题!
写一个安装程序如Setup.exe,原来的cab包中指定默认安装目录,并把cab包作为setup.exe的资源。
启动setup.exe时释放cab包到一个目录,然后调用wceload + 参数(其中指定/askdest 和 /delete)不就可以了?
embest_mhq 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cytlyy 的回复:]
你是在模拟器上安装的吧?安装的时候提示选择:Device还是Storage Card.是吧。如果是这样的话是因为你的模拟器File-》Configure-》Shared folder中添加了PC上的共享文件夹,将这个去掉。安装程序时就不会出现选择安装路径这一步的询问了。
[/Quote]

我使用的是一台安装windows CE6.0操作系统的测试样机,并不是在模拟器上安装,而是在真实的机器上。
88csdn 2009-03-20
  • 打赏
  • 举报
回复
CeCabManager能不能帮忙?
embest_mhq 2009-03-20
  • 打赏
  • 举报
回复
感谢各位朋友的回答,提出了很多建议,学习到不少东西。第一次提问,感觉收获到不少,就按照楼上的提示,去做个程序把wceload包起来,这样应该没有问题了。就此结贴,再次感谢回答我问题的所有朋友。
cytlyy 2009-03-19
  • 打赏
  • 举报
回复
你是在模拟器上安装的吧?安装的时候提示选择:Device还是Storage Card.是吧。如果是这样的话是因为你的模拟器File-》Configure-》Shared folder中添加了PC上的共享文件夹,将这个去掉。安装程序时就不会出现选择安装路径这一步的询问了。
embest_mhq 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 okadler0518 的回复:]
引用 6 楼 embest_mhq 的回复:
引用 1 楼 cytlyy 的回复:
弹出对话框微软的安全机制,如果你想你的应用程序安装时不弹出提示对话框,必须要对安装的对话框进行签名。(sign).

在安装时,一共会弹出两次对话框。第一次是由于没有签名,所以询问是否进行安装。这个直接点击OK后,会弹出第二个对话框来询问安装路径,因为我只安装DLL并没有任何exe文件,所以我想屏蔽掉这个对话框。通过以下方法是可以实现的。

安装…
[/Quote]

可以参考这篇博客http://www.cnblogs.com/answer/archive/2008/10/10/1307904.html

里面详细介绍了 wceload 参数,通过修改这些参数可以配置wceload程序

HKEY_CLASSES_ROOT\cabfile\Shell\open\command 这个是在ce 6.0下的注册表的路径。
embest_mhq 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cytlyy 的回复:]
自己写个setup.dll,打包的时候将这个setup.dll一块打包安装,这样你就可以用自己的setup.dll替换掉系统安装时的安装程序了。你可以在setup.dll中做自己想做的事情(修改Install_Init这些函数)。
[/Quote]

修改setupdll恐怕不行呢,Install_Init(...)的一个参数是pszInstallDir(name of the user-selected install directory of the application),这就说明调用setupdll时,已经弹出了路径对话框。所以这个方法行不通......
世外涛缘 2009-03-19
  • 打赏
  • 举报
回复
按照楼上的想法,可以在安装开始前修改注册表
在Install_Init中修改注册表。
不知道这样做可行不?有问题请大家指正。
大饼哥- 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 embest_mhq 的回复:]
引用 1 楼 cytlyy 的回复:
弹出对话框微软的安全机制,如果你想你的应用程序安装时不弹出提示对话框,必须要对安装的对话框进行签名。(sign).

在安装时,一共会弹出两次对话框。第一次是由于没有签名,所以询问是否进行安装。这个直接点击OK后,会弹出第二个对话框来询问安装路径,因为我只安装DLL并没有任何exe文件,所以我想屏蔽掉这个对话框。通过以下方法是可以实现的。

安装时不弹出"询问路径":\Windows\w…
[/Quote]

你说的这个更改注册表什么的,安装时不弹出"询问路径":\Windows\wceload.exe /noaskdest /delete 0 "%1"
这个在那里改的啊。。。。。。。希望得到你的回复,谢谢
cytlyy 2009-03-19
  • 打赏
  • 举报
回复
自己写个setup.dll,打包的时候将这个setup.dll一块打包安装,这样你就可以用自己的setup.dll替换掉系统安装时的安装程序了。你可以在setup.dll中做自己想做的事情(修改Install_Init这些函数)。
儿大不由爷 2009-03-19
  • 打赏
  • 举报
回复
看用SetupDll能否解决
embest_mhq 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cytlyy 的回复:]
弹出对话框微软的安全机制,如果你想你的应用程序安装时不弹出提示对话框,必须要对安装的对话框进行签名。(sign).
[/Quote]
在安装时,一共会弹出两次对话框。第一次是由于没有签名,所以询问是否进行安装。这个直接点击OK后,会弹出第二个对话框来询问安装路径,因为我只安装DLL并没有任何exe文件,所以我想屏蔽掉这个对话框。通过以下方法是可以实现的。

安装时不弹出"询问路径":\Windows\wceload.exe /noaskdest /delete 0 "%1"
参考:
http://www.cnblogs.com/answer/archive/2008/10/10/1307904.html

但是安装包是要提交给其他用户使用的,不可能去要求客户在安装时修改注册表,所以向大家请教有没有更好的方法,可以直接屏蔽掉那个询问安装路径的对话框。
embest_mhq 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ultrapro 的回复:]
是WIndows Mobile6.0还是WIndows Ce 6.0呢?
[/Quote]
是windows ce 6.0
embest_mhq 2009-03-19
  • 打赏
  • 举报
回复
测试机使用的是 Windows Embedded CE 6.0
儿大不由爷 2009-03-19
  • 打赏
  • 举报
回复
是WIndows Mobile6.0还是WIndows Ce 6.0呢?
儿大不由爷 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cytlyy 的回复:]
弹出对话框微软的安全机制,如果你想你的应用程序安装时不弹出提示对话框,必须要对安装的对话框进行签名。(sign).
[/Quote]

这个和签名无关,你理解错了
cytlyy 2009-03-19
  • 打赏
  • 举报
回复
弹出对话框微软的安全机制,如果你想你的应用程序安装时不弹出提示对话框,必须要对安装的对话框进行签名。(sign).

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧