Setup Factory 安装程序用户选择路径问题的解决
2009-05-07 11:34
483 查看
曾经在网上看到有网友问:
我用Setup Factory 8.0制作的安装程序,在执行安装的时候会有默认的安装路径,同时用户也可以选择安装路径。
比如默认的安装路径是 C:/Program Files/MyApp/
用户选择路径的D:/Program Files/
继续安装的话就会直接安装到D:/Program Files/,通常这个目录下很多其他文件,一不小心就会造成误操作把文件都安装到D:/Program Files/了。
能不能自动补全上MyApp?怎么做?
后来我也遇到这种问题,查看了Setup Factory的帮助文档,找到了解决的办法。只需要在Setup Factory目录下找到全局函数文件 _SUF70_Global_Functions.lua ,用记事本打开并查找g_EditFieldFolderBrowse,代码很简单,把这个函数改为如下:
function g_EditFieldFolderBrowse(nIDEditField, strPrompt)
-- get the current properties of the edit field
local tbEditProps = DlgEditField.GetProperties(nIDEditField);
if(not tbEditProps) then
-- The edit field is not accessible or does not exist
return;
end
-- display a folder browse dialog, using the current contents of the edit
-- field as the initial folder path (the folder to start browsing from)
local strInitialFolder = tbEditProps.Text;
local strTargetFolder = Dialog.FolderBrowse(strPrompt, strInitialFolder);
if((strTargetFolder == "") or (strTargetFolder == "CANCEL")) then
return;
end
-- replace the contents of the edit field with the folder path that was selected
--修改的内容,添加程序文件夹
strCCCn = SessionVar.Expand("%ProductName%");
tbEditProps.Text = strTargetFolder.."//"..strCCCn;
tbEditProps.Text = String.Replace(tbEditProps.Text, "////", "//", false);
tbEditProps.Text = String.Replace(tbEditProps.Text, "//"..strCCCn.."//"..strCCCn, "//"..strCCCn, false);
--去掉重复的文件夹
DlgEditField.SetProperties(nIDEditField, tbEditProps);
end
如此简单就解决了,主要是这些语言完全不懂,费了很多时间。
再后来不用Setup Factory 了,因为发现了比它压缩率高n多的Inno Setup,脚本很是灵活,用好Pascal的话太强大了!
我用Setup Factory 8.0制作的安装程序,在执行安装的时候会有默认的安装路径,同时用户也可以选择安装路径。
比如默认的安装路径是 C:/Program Files/MyApp/
用户选择路径的D:/Program Files/
继续安装的话就会直接安装到D:/Program Files/,通常这个目录下很多其他文件,一不小心就会造成误操作把文件都安装到D:/Program Files/了。
能不能自动补全上MyApp?怎么做?
后来我也遇到这种问题,查看了Setup Factory的帮助文档,找到了解决的办法。只需要在Setup Factory目录下找到全局函数文件 _SUF70_Global_Functions.lua ,用记事本打开并查找g_EditFieldFolderBrowse,代码很简单,把这个函数改为如下:
function g_EditFieldFolderBrowse(nIDEditField, strPrompt)
-- get the current properties of the edit field
local tbEditProps = DlgEditField.GetProperties(nIDEditField);
if(not tbEditProps) then
-- The edit field is not accessible or does not exist
return;
end
-- display a folder browse dialog, using the current contents of the edit
-- field as the initial folder path (the folder to start browsing from)
local strInitialFolder = tbEditProps.Text;
local strTargetFolder = Dialog.FolderBrowse(strPrompt, strInitialFolder);
if((strTargetFolder == "") or (strTargetFolder == "CANCEL")) then
return;
end
-- replace the contents of the edit field with the folder path that was selected
--修改的内容,添加程序文件夹
strCCCn = SessionVar.Expand("%ProductName%");
tbEditProps.Text = strTargetFolder.."//"..strCCCn;
tbEditProps.Text = String.Replace(tbEditProps.Text, "////", "//", false);
tbEditProps.Text = String.Replace(tbEditProps.Text, "//"..strCCCn.."//"..strCCCn, "//"..strCCCn, false);
--去掉重复的文件夹
DlgEditField.SetProperties(nIDEditField, tbEditProps);
end
如此简单就解决了,主要是这些语言完全不懂,费了很多时间。
再后来不用Setup Factory 了,因为发现了比它压缩率高n多的Inno Setup,脚本很是灵活,用好Pascal的话太强大了!
相关文章推荐
- 用InstallShield打包 在用户选择的安装目录后面追加路径的问题
- 解决Web安装程序不能选择安装目录问题(1)
- 解决.NET(WebApplication)安装部署的不能选择安装路径的问题 [转]
- 解决win8.1安装无法选择路径问题
- 无法启动此程序,因为计算机中丢失QtCore4.dll。尝试重新安装该程序以解决此问题(在系统里添加3个路径)
- 解决.NET(WebApplication)安装部署的不能选择安装路径的问题
- 解决Web安装程序不能选择安装目录问题(4)
- vs2015第二次装安装不能选择路径问题解决方法
- Inno Setup 已经安装好程序后,再次运行安装包无法选择安装路径的问题。
- 解决Web安装程序不能选择安装目录问题(3)
- 解决Web安装程序不能选择安装目录问题(2)
- "没有找到QtCored4.dll,因此这个程序未能启动。重新安装应用程序可能会修复此问题"解决方法
- 无法启动此程序,因为计算机中丢失MFC42D.DLL。尝试重新安装该程序以解决此问题
- 利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题
- 【转啊转的啊】]关于“Web 创作组件” 解决MS Office 2007找不到Office.zh-cn问题以及VS2008 SP1 安装失败需指定visualwebdeveloperww.msi所在路径
- android 解决小米手机上选择照片路径为null的问题
- 解决华为手机选择图片路径不一样问题
- 解决:一个最近安装的程序已停用欢迎屏幕和快速用户切换.您必须卸载该程序以恢复这些功能.下列文件名可以帮您识别该程序所作的修改:vrlogon.dll 【转贴】
- VS2017无法启动程序,系统找不到指定的路径,问题解决
- 解决卸载或者安装程序失败的问题,提示:错误 1402。无法打开键UNKNOWN\Components\xxx