NSIS如何在安装前结束当前运行的进程
2008-09-02 11:32
1206 查看
以前在工作中遇到的一个问题,我们的产品在运行时,点击安装,会报错,找到一个结束进程的控件processwork.dll
下载地址:http://www.esanu.name/programs/NSISKillProcess.html
将processwork.dll放到Plugins目录下,然后在NSIS代码中加入如下函数:
Function CloseParentWithUserApproval
Push $5
loop:
push "*.exe"
processwork::existsprocess
pop $5
IntCmp $5 0 done
MessageBox MB_RETRYCANCEL|MB_ICONSTOP “Your process must be closed during this installation.$/r$/n Close your process now, or press Retry to automatically close and continue or press Cancel to cancel the installation entirely.“ IDCANCEL BailOut
push "*.exe"
processwork::KillProcess
Sleep 2000
Goto loop
BailOut:
Abort
done:
Pop $5
FunctionEnd
下载地址:http://www.esanu.name/programs/NSISKillProcess.html
将processwork.dll放到Plugins目录下,然后在NSIS代码中加入如下函数:
Function CloseParentWithUserApproval
Push $5
loop:
push "*.exe"
processwork::existsprocess
pop $5
IntCmp $5 0 done
MessageBox MB_RETRYCANCEL|MB_ICONSTOP “Your process must be closed during this installation.$/r$/n Close your process now, or press Retry to automatically close and continue or press Cancel to cancel the installation entirely.“ IDCANCEL BailOut
push "*.exe"
processwork::KillProcess
Sleep 2000
Goto loop
BailOut:
Abort
done:
Pop $5
FunctionEnd
相关文章推荐
- 如何获得当前运行模块在进程地址空间的位置
- C#编程:如何获得当前进程运行路径
- [Android Pro] 获取手机已经安装的应用 和 获取当前正在运行的所有进程(一个uid对应多个pid)
- VC++中如何获得一个当前进程的运行目录
- 如何获得当前运行模块在进程地址空间的位置
- [Android Pro] 获取手机已经安装的应用 和 获取当前正在运行的所有进程(一个uid对应多个pid)
- VC程序中如何结束系统正在运行的其他进程 以及本程序自身
- 如何获得当前运行模块在进程地址空间的位置
- Android-如何获得当前正在运行的activity和进程的相关信息
- 如何运用inno在安装和卸载时提示用户结束进程?
- [Windows Mobile 6.x] 如何获得当前运行的所有进程
- 如何获得当前运行模块在进程地址空间的位置
- VC++中如何获得一个当前进程的运行目录
- VC程序中如何结束系统正在运行的其他进程
- ubuntu 中如何查看正在运行的进程以及结束进程
- [Windows Mobile 6.x] 如何获得当前运行的所有进程
- 如何判断当前进程是在32位/64位系统上运行
- 如何快速正确的安装 Ruby, Rails 运行环境
- docker如何创建一个运行后台进程的容器并同时提供shell终端
- 如何查看端口是否被占用、如何结束进程