zoukankan      html  css  js  c++  java
  • inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效

    --------------------------代码如下---------------------------


    [Code]
    var
    ErrorCode: Integer;
    IsRunning: Integer;

    // 安装时判断客户端是否正在运行
    function InitializeSetup(): Boolean;
    begin
    Result :=true; //安装程序继续
    IsRunning:=FindWindowByWindowName('东方宽频网络电视');
    while IsRunning<>0 do
    begin
        if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
        begin
          Result :=false; //安装程序退出
          IsRunning :=0;
        end else begin
          Result :=true; //安装程序继续
          IsRunning:=FindWindowByWindowName('东方宽频网络电视');
        end;
    end;

    end;

    // 卸载时判断客户端是否正在运行
    function InitializeUninstall(): Boolean;
    begin
       Result :=true; //安装程序继续
    IsRunning:=FindWindowByWindowName('东方宽频网络电视');
    while IsRunning<>0 do
    begin
        if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
        begin
          Result :=false; //安装程序退出
          IsRunning :=0;
        end else begin
          Result :=true; //安装程序继续
          IsRunning:=FindWindowByWindowName('东方宽频网络电视');
        end;
    end;
    end;

    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    begin
    case CurUninstallStep of
        usUninstall:
          begin // 开始卸载

          end;
        usPostUninstall:
          begin      // 卸载完成
            // MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);
            // ...insert code to perform post-uninstall tasks here...
            ShellExec('open', 'http://www.baidu.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
          end;
    end;
    end;


    请问“东方宽屏网络电视”是不是改成自己程序的名字

    这些代码无效  怎没办 - -!!

    restools 2011-11-07 20:41
    FindWindowByWindowName 只能查找完整的标题, 例如你的 标题是 MyApp ver 1.0
    那么你只能用 FindWindowByWindowName('MyApp ver 1.0')
    而不能用 FindWindowByWindowName('MyApp')
    xwhminghan 2011-11-08 12:20
    用插件吧,检测进程的插件,有好几个,而且都有例子的。你搜索一下就知道了。istask、IssProc、psvince
    xwhminghan 2011-11-08 12:33
    #define MyAppName "MyProgramm"
    #define MyAppVersion "0.0.0.0"
    #define MyAppURL "http://www.example.com/"
    #define MyAppExeName "MyProg.exe"

    [Files]
    Source: {tmp}psvince.dll; DestDir: {app}; Flags: ignoreversion; Attribs: hidden

    [Code]
    function IsModuleLoadedU(modulename: String ):  Boolean;
      external 'IsModuleLoaded@{app}psvince.dll stdcall uninstallonly';

    function InitializeUninstall(): Boolean;
    begin
      if IsModuleLoadedU( '{#MyAppExeName}' ) then
      begin
        MsgBox('{#MyAppName} 正在运行,请尝试关闭后再点击[确定]按钮。',mbError, MB_OK);
        Result := false;
      end
      else
        Result := true;
        UnloadDLL(ExpandConstant('{app}psvince.dll'));
    end;

    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    begin
      case CurUninstallStep of
        usPostUninstall:
          begin
            if MsgBox('访问作者的网站吗?', mbConfirmation, MB_YesNo or MB_DEFBUTTON1) = IDYes then
              ShellExec('open', '{#MyAppURL}', '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
          end;
      end;
    end;
    lh822 2011-11-08 21:55
    +_+ 看不懂  大家看下一下代码 ↓

    --------------------------------------------------------------------------------------------------------------
    ; 脚本由 Inno Setup 脚本向导 生成!
    ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

    #define MyAppName "愤怒的小鸟"
    #define MyAppVersion "1.0.0"
    #define MyAppPublisher "Rovio"
    #define MyAppExeName "AngryBirds.exe"

    [Setup]
    ; 注: AppId的值为单独标识该应用程序。
    ; 不要为其他安装程序使用相同的AppId值。
    ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
    AppId={{3D8D1A6F-6154-4E87-9049-62C54FC56F69}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    DefaultDirName={pf}{#MyAppName}
    DefaultGroupName={#MyAppName}
    OutputBaseFilename=愤怒的小鸟
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

    [Files]
    Source: "E:愤怒的小鸟AngryBirds.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "E:愤怒的小鸟*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

    [Icons]
    Name: "{group}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
    Name: "{group}{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
    Name: "{commondesktop}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: desktopicon

    [Run]
    Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent

    ----------------------------------------------------------------------------------------------

    比如这个  ,要怎没弄才能实现  ,安装卸载时检测程序是否正在运行卸载完成后自动打开网页。



    lh822 2011-11-17 14:13
    ; 脚本由 Inno Setup 脚本向导 生成!
    ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

    #define MyAppName "我的程序"
    #define MyAppVersion "1.5"
    #define MyAppPublisher "我的公司"
    #define MyAppURL "http://www.example.com/"
    #define MyAppExeName "AngryBirds.exe"

    [Setup]
    ; 注: AppId的值为单独标识该应用程序。
    ; 不要为其他安装程序使用相同的AppId值。
    ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
    AppId={{84B08A76-86FA-4ADA-8943-4275F0CC0F21}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName={pf}{#MyAppName}
    DefaultGroupName={#MyAppName}
    OutputBaseFilename=setup
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

    [Files]
    Source: "E:愤怒的小鸟AngryBirds.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "E:愤怒的小鸟*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

    [Icons]
    Name: "{group}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
    Name: "{group}{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
    Name: "{group}{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
    Name: "{commondesktop}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: desktopicon

    [Run]
    Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
    [Code]
    var
    ErrorCode: Integer;
    IsRunning: Integer;

    // 安装时判断客户端是否正在运行
    function InitializeSetup(): Boolean;
    begin
    Result :=true; //安装程序继续
    IsRunning:=FindWindowByWindowName('我的程序');
    while IsRunning<>0 do
    begin
        if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
        begin
          Result :=false; //安装程序退出
          IsRunning :=0;
        end else begin
          Result :=true; //安装程序继续
          IsRunning:=FindWindowByWindowName('我的程序');
        end;
    end;

    end;

    // 卸载时判断客户端是否正在运行
    function InitializeUninstall(): Boolean;
    begin
       Result :=true; //安装程序继续
    IsRunning:=FindWindowByWindowName('我的程序');
    while IsRunning<>0 do
    begin
        if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
        begin
          Result :=false; //安装程序退出
          IsRunning :=0;
        end else begin
          Result :=true; //安装程序继续
          IsRunning:=FindWindowByWindowName('我的程序');
        end;
    end;
    end;

    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    begin
    case CurUninstallStep of
        usUninstall:
          begin // 开始卸载

          end;
        usPostUninstall:
          begin      // 卸载完成
            // MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);
            // ...insert code to perform post-uninstall tasks here...
            ShellExec('open', 'http://www.baidu.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
          end;
    end;
    end;



    这样怎么不对 。。。   %>_<%
  • 相关阅读:
    转载高效的MySQL分页 枫
    [笔记]NFC笔记——WUP_REQ 和 WUP_RES 消息结构
    [笔记]NFC笔记——PSL_REQ 和 PSL_RES 消息结构
    [笔记]C语言中二级指针简单例子
    [笔记]NFC协议规范学习笔记汇总
    [笔记]C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
    [笔记]如何限制用户在5分钟之后才能重复同样操作
    [笔记]NFC笔记——ATR_RES 消息结构
    简单的具备自动检测行为的文本框控件
    多重AutoComplete的Textbox
  • 原文地址:https://www.cnblogs.com/joean/p/4938093.html
Copyright © 2011-2022 走看看