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;

这样怎么不对 。。。   %>_<%

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

  1. Inno setup 卸载时删除程序文件夹(文件)

    Inno setup 卸载时删除程序文件夹(文件) //删除所有配置文件以达到干净卸载的目的 procedure CurUninstallStepChanged(CurUninstallStep: T ...

  2. 安装Aptana时检测不到已经安装的Nodejs

    1.环境前提 已经安装了Git和Nodejs,在安装Aptana时任然提示如下错误: Failed to correctly acquire installer_nodejs_windows.msi ...

  3. Linux Shell 脚本学习第一天: 使用grep 命令,lsusb, ps -ef, 实现树莓派(Debian OS)时检测到依赖的USB设备启动后,启动终端自动执行shell脚本

    1.应用背景: 无人监测的设备,常需要设置应用程序开机启动,程序启动前需要保证调用的设备先启动,运行环境先启动. 2.test.sh部分源码 #!/bin/sh #查看桌面是否启动 while tru ...

  4. 安装完成Windows服务后自动打开

    使用DOS进程开启服务 设置serviceProcessInstaller1控件的Account属性为“LocalSystem”设置serviceInstaller1控件的StartType属性为&q ...

  5. 解决安装fiddler后IE打开网页提示“代理服务器无响应”

    环境:win8.1+IE11 安装fiddler4后,启动fiddler,IE11打开百度网站,打开失败:代理服务器无响应,如图: 在网上找了各种方法,修改fiddler的设置,均无法解决这个问题,无 ...

  6. Mac 下安装python3.7 + pip 利用 chrome + chromedriver + selenium 自动打开网页并自动点击访问指定页面

    1.安装python3.7https://www.python.org/downloads/release/python-370/选择了这个版本,直接默认下一步 2.安装pipcurl https:/ ...

  7. 使用Python+Qt时解决QTreeWidget中的内容超出边界后自动隐藏的问题

    问题: 默认情况下,内容超出边界后会自动省略,以...代替,而且无法出现水平滚动条 解决方法: 把VerticalScrollBar和HorizontalScrollBar的值都设为ScrollBar ...

  8. 使用Inno SetUp脚本打包Winform程序

    在开发桌面程序时,往往需要用到打包工具将程序打包为exe可执行文件. 之前在项目中用了下 InstallShield Limited Edition for Visual Studio  2015,它 ...

  9. Inno Setup安装、卸载时判断是否程序正在运行

    var ErrorCode: Integer; IsRunning: Integer; // 安装时判断客户端是否正在运行 function InitializeSetup(): Boolean; b ...

随机推荐

  1. How to decide on the correct number of clusters?

    Determining the number of clusters/segments in hierarchical clustering/segmentation algorithms 由于uni ...

  2. Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

    详情见:http://blog.csdn.net/chindroid/article/details/8000713

  3. php -l 检查文件是否语法错误

    有时候在进行网页开发的时候,后台文件的语法错误比较难检查出来,这时候使用php -l filename可对文件的语法进行检查.

  4. 扫盲如何在ECLIPSE中使用条件断点

    有时候在编码的时候我们希望知道代码变量符合某个条件时,才中断点,其他的情况不中断点.   解决办法1:   我们写个代码 判断,符合条件在符合条件处进行断点,这个方法很麻烦,需要去修改代码,不要是还需 ...

  5. PowerPivot安装完成后创建网站或网站集报错解决办法

    根据上一篇“在现有 SharePoint 服务器上安装 PowerPivot for SharePoint”后,新建网站或网站集时报错,重新配置了一下PowerPivot For SharePoint ...

  6. eclipse debug 过滤一些包

    eclipse debug java程序的时候, 我们按F5的时候,常常会进入java自带类库里,这些类库并不是我们需要debug的代码,这样会影响debug的效率,我们可以在eclipse里设置,过 ...

  7. 【bzoj3160】万径人踪灭

    题意:给一个只含a.b的字符串,求所有的回文不连续子序列. manacher+FFT. 先求出所有回文序列,再减去连续子序列(即回文串). 将a.b分开考虑,对于一个对称轴,以其为回文中心的回文序列的 ...

  8. UVa 11762 - Race to 1

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  9. redis学习(一)

    一.redis简介 Redis是基于内存.可持久化的日志型.key-value高性能存储系统.关键字(Keys)是用来标识数据块.值(Values)是关联于关键字的实际值,可以是任何东西.有时候你会存 ...

  10. 蓝桥杯 2015年省赛最后一题 生命之树(树形dp)

    题目描述: 生命之树 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值.上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点 ...