您正在使用 Internet Explorer 6,在本页面的显示效果可能有差异。建议您升级到 Internet Explorer 8 或以下浏览器: Firefox / Chrome / Safari / Opera
首 页 文章Inno ksiCallNsis-又一款调用nsis插件的插件(支持更多nsis插件)

ksiCallNsis-又一款调用nsis插件的插件(支持更多nsis插件)

http://www.kngstr.com/product/inno_setup/

ksiCallNsis是一款调用nsis的dll的插件,本插件支持/unload,callback的nsis插件,参照nsis的源码编写。

但依然有些插件不支持:

1、会访问nsis窗口的

2、在回调事件中有真实代码的

3、会访问一些nsis的常量的


特别感谢:

感谢Restools大神写的插件,callnsis,借用他的话说,双剑合璧。

感谢Restools大神分享的调用nsis插件的代码


插件附带了几个nsis的插件,作为演示,这里举例说明

killer.dll - 进程检测和结束插件,支持32和64
nsProcess.dll- 进程检测和结束插件,支持32和64
newadvsplash.dll - 闪屏插件
AdvSplash.dll - 闪屏插件

   1 ; -- Example1.iss --
   0
   1; ksiCallNsis 插件演示,调用含有callback的nsis插件
   2
   3#include "ksiCallNsis.ish"
   4
   5[Setup]
   6AppName=我的程序
   7AppVerName=我的程序 版本 1.5
   8DefaultDirName={pf}\我的程序
   9DefaultGroupName=我的程序
  10UninstallDisplayIcon={app}\MyProg.exe
  11OutputDir=userdocs:Inno Setup Examples Output
  12
  13[Files]
  14Source"{#PluginDir}\Nsis\nsProcess.dll"Flagsdontcopy
  15
  16[Icons]
  17Name"{group}\我的程序"Filename"{app}\MyProg.exe"
  18
  19[code]
  20procedure InitializeWizard();
  21var
  22  val: string;
  23  ival: Integer;
  24begin
  25  PDir('{# ksiCallNsis_DLL }');
  26
  27  InitNsisPlug(0);
  28  try
  29    CallNsisPlugEx(PDir('nsProcess.dll'),'_FindProcess', ['/NOUNLOAD''cmd.exe']);
  30    val := PopNsisString;
  31    if val = '0' then begin
  32      if MsgBox('发现cmd,是否关闭进程?', mbConfirmation, MB_YESNO) = IDYES then begin
  33        CallNsisPlugEx(PDir('nsProcess.dll'),'_KillProcess', ['/NOUNLOAD''cmd.exe']);
  34        val := PopNsisString;
  35        if val = '0' then
  36          MsgBox('关闭成功', mbConfirmation, MB_OK)
  37        else
  38          MsgBox(Format('错误代码:%s', [val]), mbConfirmation, MB_OK);
  39      end;
  40    end
  41    else
  42      MsgBox(Format('错误代码:%s', [val]), mbConfirmation, MB_OK);
  43    CallNsisPlugEx(PDir('nsProcess.dll'),'_Unload', []);
  44  finally
  45    FreeNsisPlug();
  46  end;
  47end;
  48
  49
  50

本插件是按照AIO(Inno集成版)的规范编写。使用的时候请直接覆盖到AIO(Inno集成版)的安装目录使用

如果你使用AIO(Inno集成版)新版本的话,会集成本插件,老版本可以手动覆盖


文中提到的文件下载:http://dl.kngstr.com//plugins/ksiCallNsis-0.1.7z
返回顶部】 【打印此页】 【关闭