jans
发表于 2005-6-1 09:52:00
请问vlx文件怎么制作?
孤独客
发表于 2005-6-1 23:12:00
用文件菜单-->生成应用程序-->新建应用程序向导按提示加入应用程序需用的lsp,fas,prj,dcl文件生成的就是应用程序文件即(VLX 文件)
KSB_daniel
发表于 2005-6-6 20:37:00
LIHAI
he993
发表于 2005-6-6 23:44:00
本帖最后由 作者 于 2005-6-7 20:27:34 编辑
为什么我试了,然后安装了,但在开始菜单栏出现的是程序卸载的快捷方式呢? 为什么不是程序启动的快捷方式呢?能指点一下吗?谢谢!
he993
发表于 2005-6-7 20:26:00
什么时候我业能懂这么多?
秋枫
发表于 2005-6-7 21:57:00
程序的启动不需要自己的快捷方式。你运行AutoCAD就是了。程序在AutoCAD启动时加载(前提是你Setup制作过程中设置正确)
在开始菜单中提供卸载的快捷方式仅仅是方便卸载。你可以选择不建立开始菜单中的快捷方式,可以从控制面板中卸载程序。
he993
发表于 2005-6-9 17:33:00
谢谢!
孤独客
发表于 2005-6-9 22:59:00
秋枫发表于2005-5-30 21:06:00static/image/common/back.gif我系统中没有安装2002,无法详细说明,以2006为例,这个与2002的注册表结构是差不多的。
遍历的Innosetup源代码你可以参考本主题的4楼。
如图所示:...
我试者做了,但整个注册表没有写进去啊
下面是我的源代码,请帮帮忙给看看<BR>procedure AddAutoLoadLisp;
var i, j, k, n: integer;<BR> StartupToAdd, key, tmp: string;<BR> SupportedAcadKeys1,SupportedAcadKeys,profiles: TArrayOfString;<BR> StringList: TStringList;<BR> ApploadLoadCtrls: Cardinal;<BR> begin<BR> StartupToAdd := 'c:\lisp\menu\ks.mns';<BR> RegGetValueNames(HKCU, 'Software\Autodesk\AuoCAD\',SupportedAcadKeys1)<BR> // 设置appload的loadctrls<BR> for i := 0 to GetArrayLength(SupportedAcadKeys) -1 do //GetArrayLength获取排列长度。<BR> begin<BR> if RegQueryDWordValue(HKLM, SupportedAcadKeys+'\Applications\AcadAppload', 'LOADCTRLS', ApploadLoadCtrls) then //询问指定的 REG_DWORD-type 注册表键/值,并返回值到 ResultDWord。如果成功返回 True。当返回 False 时,不修改 ResultDWord 值。
begin<BR> ApploadLoadCtrls := (ApploadLoadCtrls or 2);<BR> RegWriteDWordValue(HKLM, SupportedAcadKeys+'\Applications\AcadAppload', 'LOADCTRLS', ApploadLoadCtrls); //写入指定的 REG_DWORD-type 注册表值,如果完成则返回 True,反之返回 False。<BR> end;<BR> if RegQueryDWordValue(HKCU, SupportedAcadKeys+'\Applications\AcadAppload', 'LOADCTRLS', ApploadLoadCtrls) then //询问指定的 REG_DWORD-type 注册表键/值,并返回值到 ResultDWord。如果成功返回 True。当返回 //False 时,不修改 ResultDWord 值。
begin<BR> ApploadLoadCtrls := (ApploadLoadCtrls or 2);<BR> RegWriteDWordValue(HKCU, SupportedAcadKeys+'\Applications\AcadAppload', 'LOADCTRLS', ApploadLoadCtrls);<BR> end;<BR> end;
StringList := TStringList.Create;<BR> try<BR> for k:=0 to GetArrayLength(SupportedAcadKeys1)-1 do
if RegGetSubkeyNames(HKCU, SupportedAcadKeys1,SupportedAcadKeys)<BR> then<BR> for i := 0 to GetArrayLength(SupportedAcadKeys) -1 do<BR> if RegGetSubkeyNames(HKCU, SupportedAcadKeys+'\<<未命名配置>>', profiles) // 并且存在Profiles, 取得所有Profiles<BR> then<BR> for j := 0 to GetArrayLength(profiles)-1 do<BR> if regkeyExists(HKCU, SupportedAcadKeys+'\<<未命名配置>>\'+profiles+'\Dialogs') then<BR> begin<BR> key := SupportedAcadKeys+'\<<未命名配置>>\'+profiles+'\Dialogs\Appload\Startup';<BR> if not regkeyExists(HKCU, key) then RegWriteStringValue(HKCU, key, 'NumStartup', '0');<BR> RegQueryStringValue(HKCU, key, 'NumStartup', tmp);<BR> // 读入已有Startup列表<BR> n := StrToIntDef(tmp, 0); //转换字符串到一个数字,<BR> StringList.Clear;<BR> for k := 1 to n do<BR> begin<BR> RegQueryStringValue(HKCU, key, IntToStr(k)+'Startup', tmp);<BR> StringList.Add(tmp);<BR> RegDeleteValue(HKCU, key, IntToStr(k)+'Startup');<BR> end;<BR> // 去除重复文件与不存在的文件<BR> for k := StringList.Count - 1 downto 0 do<BR> if (UpperCase(StringList)=UpperCase(startupToAdd)) or (not FileExists(StringList)) //UPPERCASE (s string)返回s中相同文字的字符串但所有字母都转换成大写字母<BR> then StringList.Delete(k);<BR> // 添加要加的文件<BR> StringList.Add(startupToAdd);<BR> // 重建键值<BR> for k := 0 to StringList.Count - 1 do<BR> RegWriteStringValue(HKCU, key, IntToStr(k+1)+'Startup', StringList);<BR> // 设置总数<BR> RegWriteStringValue(HKCU, key, 'NumStartup', IntToStr(StringList.Count));<BR> end;<BR> finally<BR> StringList.Free;<BR> end;<BR> end;<BR> end.<BR>下面是我机子上的autocad注册表结构图<IMG src="http://www.mjtd.com/c:/snap1.jpg">
<IMG src="c;/snap2.jpg">
孤独客
发表于 2005-6-9 23:14:00
本帖最后由 作者 于 2005-6-10 22:15:02 编辑
<IMG src="file:///c:/snap1.jpg">c:\snap.jpg
glm1105
发表于 2005-6-11 08:53:00
也许这些对我们有一些用处
页:
1
2
3
4
[5]
6
7
8
9
10
11
12
13
14