Setup Factory 9 总结
一:安装完毕立刻启动
result = Shell.Execute(SessionVar.Expand("%AppFolder%\\消息助手.exe"), "open", "", "", SW_SHOWNORMAL, false);
二:设置开机自启
[Winform]setupfactory打包时添加开机自启动的脚本
摘要
如果有这样的需求,需要软件开机自启动,该如何做呢?开机自启动的做法,就是修改注册表,将你的exe注册到注册表Run节点下。
setupfactory
在安装的时候需要以管理员身份运行,这样可以保证你的操作有足够的权限。
在程序安装完成时,添加下面的脚本
脚本如下:
--检测是否有开机自启的注册表
isExist = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
-- An if ... else statement that compares two numbers
if (isExist) then
-- Do something here
Registry.SetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "Message",
SessionVar.Expand("%AppFolder%\\消息助手.exe"), REG_SZ);
else
-- Do something else here
Registry.CreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
Registry.SetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "Message",
SessionVar.Expand("%AppFolder%\\消息助手.exe"), REG_SZ);
end
查看注册表
注意如果你的系统是x64的则再下面的key下能找到,你添加的注册项
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
三:打包时实现第三方DLL文件的注册
Shell.Execute("regsvr32","open",SessionVar.Expand("/s\"%ProgramFilesFolder%\\%ProductName%\\kpsignx.dll\""));
--打开指定的文件
File.Run(SessionVar.Expand("%TempLaunchFolder%\\kpsignx.bat"), "", "", SW_SHOWNORMAL, true);
四:安装之前检测net环境
--WIN7不需要,XP需要
result=Registry.DoesKeyExist(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\.NETFramework\\policy\\v3.0");
if (result == false) then
result=File.Run(SessionVar.Expand("%TempLaunchFolder%\\mnf30.exe"), "", "", SW_SHOWNORMAL, true);
end
注:将Resources下面的net32位去掉就可以出现直接安装不用在线下载了就。。。