论坛风格切换切换到宽版
  • 2601阅读
  • 4回复

想用INNO做这样的功能~请问怎么做? [复制链接]

上一主题 下一主题
离线JunJun
 

发帖
438
金钱
180
威望
18
只看楼主 倒序阅读 0 发表于: 2008-09-17
1、先释放一个EXE文件到临时目录
2、安装拷贝文件前执行这个EXE文件(带命令行参数)
3、卸载文件前执行一个EXE文件(带命令行参数)

请指教~~谢谢
离线zhfi

发帖
461
金钱
190
威望
19
只看该作者 1 发表于: 2008-09-17
可能其他人也需要参考,就把代码贴出来吧:

[Files]
Source: "abc.exe"; DestDir: "{tmp}"; Flags: dontcopy noencryption;

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode:Integer;
begin
if CurStep=ssInstall then
begin
ExtractTemporaryFile('abc.exe');
if fileexists(ExpandConstant('{tmp}\abc.exe')) then
Exec(ExpandConstant('{tmp}\abc.exe'), '/s', '', SW_Hide, ewWaitUntilTerminated, ResultCode);
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
ResultCode:Integer;
begin
if CurUninstallStep=usUninstall then
begin
if fileexists(ExpandConstant('{app}\123.exe')) then
Exec(ExpandConstant('{app}\123.exe'), '/s', '', SW_Hide, ewWaitUntilTerminated, ResultCode);
end;
end;
人生若只如初见@@一轩果

MyMPC 2013(104210239)
离线sakura_xp
发帖
22
金钱
0
威望
0
只看该作者 2 发表于: 2008-09-17
安装的时候也可以在需要第一个文件的BeforeInstall里面写处理代码,偶一般这么干。

另外如果需要在卸载前执行该文件,则该文件需要预先被安装到系统里面,而且最好不要是temp目录,没准被清空了。
离线JunJun

发帖
438
金钱
180
威望
18
只看该作者 3 发表于: 2008-09-18
收到 谢谢2位了 试试去
离线yanglinbao

发帖
20
金钱
0
威望
0
只看该作者 4 发表于: 2008-12-25
谢谢2位了