在INNO打包中用ISTask.dll插件如何杀死2个或多个进程呢?

smooth188 2010-03-22 06:01:01
请教在INNO打包中用ISTask.dll插件如何杀死2个或多个进程呢?小弟尝试改写代码,以求判断2个或多个进程,最终都以失败告终,所以到这里请教大家,请大家多多指点,下面是我脚本代码的一部分,用来判断1个进程是没问题的。
[Files]
Source: Dynamic Link Library\ISTask.dll; DestDir: {app}; Flags: ignoreversion solidbreak uninsrestartdelete

[Code]
function RunTask1(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
function KillTask1(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall uninstallonly';
function KillTask(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall uninstallonly';

function InitializeSetup():boolean;
begin
if RunTask1('forever.dat', false) then//安装时检测进程是否在运行
if MsgBox('安装程序检测到 {#AppName} 当前正在运行 '#10#10'点“是(Y)”立即结束程序,点“否(N)”退出安装',mbConfirmation, MB_YESNO) = IDYES then//如果用户选择“是”
KillTask1('forever.dat')//结束进程
else
begin
Result :=false;//返回值=false,程序退出
Exit;
end;

function InitializeUninstall(): Boolean;
begin
Result:= true;
if RunTask('forever.dat', false) then
if MsgBox('卸载程序检测到 {#AppName} 当前正在运行 '#10#10'点“是(Y)”立即结束程序,点“否(N)”退出', mbConfirmation, MB_YESNO) = IDYES then
KillTask('forever.dat')
else begin
Result :=false;
Exit;
end;
UnloadDll(ExpandConstant('{app}\ISTask.dll'))
end;

谢谢。
...全文
414 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wiliyun09 2010-07-21
  • 打赏
  • 举报
回复
ai376@qq.com求ISTask.dll插件 拜托LZ了

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧