因为程序安装路径是变化的,因此写入的值应该是变化的,该如何写???
9 个解决方案
#1
我只知道写到注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中,新建一个“字串值”,没用过installshield
#2
InstallShield中第三个好象就是写注册表,至于安装路径的问题,我记得安装路径可以用一个<program file>之类的写法代替真的路径,系统路径<system>。我手边没有IS,所以说的不太清楚,不过你自己试试就可以了。
#3
谢谢楼上两位的关注。。
#4
注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
win.ini文件
[windows]
run=
load=
system.ini文件
[boot]
shell = explorer.exe *.exe
autoexec.bat文件
path\file.exe
winstart.bat 文件
path\file.exe
windows启动组:
拉个快捷方式就可以了
至于文件关联,dll文件插入等方法一般的软件就不需要了
在程序里写,就大概有上面的那些方式了
用is的话,二楼的兄弟说的差不多了
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
win.ini文件
[windows]
run=
load=
system.ini文件
[boot]
shell = explorer.exe *.exe
autoexec.bat文件
path\file.exe
winstart.bat 文件
path\file.exe
windows启动组:
拉个快捷方式就可以了
至于文件关联,dll文件插入等方法一般的软件就不需要了
在程序里写,就大概有上面的那些方式了
用is的话,二楼的兄弟说的差不多了
#5
我是这样在程序中解决的:
无论程序安装在任何目录下,它的路径都可自动用函数获得
Application->ExeName
然后将其加入注册表中,或者win.ini中,
或者用程序创建一个快捷方式保存在“启动”目录里。
当然如果写入win.ini的话,最好用函数ExtractShortPathName
转换文件名。
无论程序安装在任何目录下,它的路径都可自动用函数获得
Application->ExeName
然后将其加入注册表中,或者win.ini中,
或者用程序创建一个快捷方式保存在“启动”目录里。
当然如果写入win.ini的话,最好用函数ExtractShortPathName
转换文件名。
#6
我不希望在程序中解决,
因为这样每次程序运行时都要对注册表或.ini,文件进行操作。
我还是希望在IS中解决,在软件安装时进行注册。
因为这样每次程序运行时都要对注册表或.ini,文件进行操作。
我还是希望在IS中解决,在软件安装时进行注册。
#7
is本来就支持写windows启动组和注册表
#8
我想是在IS中写要科学一点,下面是我写的IS脚本中的一部分:
string szPath3;
if(FindFile(TARGETDIR,"8017Svr.exe",szResult)=0) then
szPath3=TARGETDIR^"8017Svr.exe";
LongPathToQuote(szPath3,TRUE);
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" , "8017Svr" , REGDB_STRING , szPath3 , -1 );
endif;
string szPath3;
if(FindFile(TARGETDIR,"8017Svr.exe",szResult)=0) then
szPath3=TARGETDIR^"8017Svr.exe";
LongPathToQuote(szPath3,TRUE);
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" , "8017Svr" , REGDB_STRING , szPath3 , -1 );
endif;
#9
问题已经解决了,
我的做法同楼上的兄弟一样。
散分
我的做法同楼上的兄弟一样。
散分
#1
我只知道写到注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中,新建一个“字串值”,没用过installshield
#2
InstallShield中第三个好象就是写注册表,至于安装路径的问题,我记得安装路径可以用一个<program file>之类的写法代替真的路径,系统路径<system>。我手边没有IS,所以说的不太清楚,不过你自己试试就可以了。
#3
谢谢楼上两位的关注。。
#4
注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
win.ini文件
[windows]
run=
load=
system.ini文件
[boot]
shell = explorer.exe *.exe
autoexec.bat文件
path\file.exe
winstart.bat 文件
path\file.exe
windows启动组:
拉个快捷方式就可以了
至于文件关联,dll文件插入等方法一般的软件就不需要了
在程序里写,就大概有上面的那些方式了
用is的话,二楼的兄弟说的差不多了
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
win.ini文件
[windows]
run=
load=
system.ini文件
[boot]
shell = explorer.exe *.exe
autoexec.bat文件
path\file.exe
winstart.bat 文件
path\file.exe
windows启动组:
拉个快捷方式就可以了
至于文件关联,dll文件插入等方法一般的软件就不需要了
在程序里写,就大概有上面的那些方式了
用is的话,二楼的兄弟说的差不多了
#5
我是这样在程序中解决的:
无论程序安装在任何目录下,它的路径都可自动用函数获得
Application->ExeName
然后将其加入注册表中,或者win.ini中,
或者用程序创建一个快捷方式保存在“启动”目录里。
当然如果写入win.ini的话,最好用函数ExtractShortPathName
转换文件名。
无论程序安装在任何目录下,它的路径都可自动用函数获得
Application->ExeName
然后将其加入注册表中,或者win.ini中,
或者用程序创建一个快捷方式保存在“启动”目录里。
当然如果写入win.ini的话,最好用函数ExtractShortPathName
转换文件名。
#6
我不希望在程序中解决,
因为这样每次程序运行时都要对注册表或.ini,文件进行操作。
我还是希望在IS中解决,在软件安装时进行注册。
因为这样每次程序运行时都要对注册表或.ini,文件进行操作。
我还是希望在IS中解决,在软件安装时进行注册。
#7
is本来就支持写windows启动组和注册表
#8
我想是在IS中写要科学一点,下面是我写的IS脚本中的一部分:
string szPath3;
if(FindFile(TARGETDIR,"8017Svr.exe",szResult)=0) then
szPath3=TARGETDIR^"8017Svr.exe";
LongPathToQuote(szPath3,TRUE);
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" , "8017Svr" , REGDB_STRING , szPath3 , -1 );
endif;
string szPath3;
if(FindFile(TARGETDIR,"8017Svr.exe",szResult)=0) then
szPath3=TARGETDIR^"8017Svr.exe";
LongPathToQuote(szPath3,TRUE);
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" , "8017Svr" , REGDB_STRING , szPath3 , -1 );
endif;
#9
问题已经解决了,
我的做法同楼上的兄弟一样。
散分
我的做法同楼上的兄弟一样。
散分