`新世纪娱乐场骗人么·请帮帮忙吧·

[求助]请教gnatix兄和各位INNO的高手们,请帮帮忙。|安装与补丁 - 汉化新世纪论坛 - Powered by phpwind
查看完整版本: [--
[求助]请教gnatix兄和各位INNO的高手们,请帮帮忙。
我要做一个程序的安装包,但要实现以下判断,请帮忙。A程序的安装包,如果A程序没有在运行,则按正常的步骤安装,如果A程序在运行的情况下安装,则运行安装包后,提示“程序正在运行,请先关闭程序!”,这时,如果点击“取消”按钮,就退出安装,如果点击“确定”按钮,在A程序已关闭的情况下就进入安装步骤,如果A程序没有关闭的情况下点击“确定”,则循环显示“程序正在运行,请先关闭程序!”这个提示框架。
见 inno 使用论坛讨论精华或搜索一下论坛。
QUOTE(HuAnGkUn @ 日 12时56分)见 inno 使用论坛讨论精华或搜索一下论坛。[snapback]213374[/snapback]见 inno 使用论坛的链接是什么?你是让我在这里搜索,还是到inno使用论坛上搜索?
请大家帮帮忙。谢谢。
以前是讨论过这个,如果要根据程序窗口名关闭该程序,发个 WM_CLOSE/WM_DESTORY
消息就可以了,如果是根据进程名称比如 xxx.exe ,那可能要找个命令行的杀进程工具(老虎当时就给过一个,体积很小),具体做法不难
现在是不需要安装包来关闭已经运行的程序,是提示用户自己关闭,但提示框要有“确定”和“取消”两个按钮,点击取消就退出安装程序,点击确定,如果是那个运行中的程序已经被用户自行关闭,就进入安装步骤,如果没有被关闭,就循环显示这个提示框架。请虎兄和各位高手指点。
老问题了。。。但愿下面这个脚本100%满你的意了:)function InitializeSetup():varhWnd:beginResult:=hWnd:= FindWindowByWindowName('你的应用程序窗口名称');while hWnd && 0 do beginif MsgBox('应用程序正在运行,继续安装前请先关闭它!'#13'要继续安装吗?', mbConfirmation, MB_OKCANCEL) = IDOK thenhWnd:= FindWindowByWindowName('你的应用程序窗口名称')elsebeginhWnd:= 0;Result:=
谢谢虎兄的帮助,感激感激!
使用这种办法判断,如果打开一个文件夹,文件夹的名称与FindWindowByWindowName是一样的,那就会误判断了,请问虎兄,能不能判断进程呢?
QUOTE(美女不是我 @ 日 12时13分)使用这种办法判断,如果打开一个文件夹,文件夹的名称与FindWindowByWindowName是一样的,那就会误判断了,请问虎兄,能不能判断进程呢?[snapback]213574[/snapback]1. 复制附件中的文件到 INNO 的安装目录中。2. 使用下面的脚本。[Files]Source: compiler:psvince. Flags: dontcopy & //添加这行[Code]function IsModuleLoaded(modulename: String ): Bexternal 'IsModuleLoaded@files:psvince.dll stdcall';function InitializeSetup():varIsAppRunning:beginResult:=IsAppRunning:= IsModuleLoaded('MyProg.exe');
//你的程序文件名while IsAppRunning do beginif MsgBox('应用程序正在运行,继续安装前请先关闭它!'#13'要继续安装吗?', mbConfirmation, MB_OKCANCEL) = IDOK thenIsAppRunning:= IsModuleLoaded('MyProg.exe') &
//你的程序文件名elsebeginIsAppRunning:=Result:=
忘了附件(注意,打包了!)
QUOTE(gnatix @ 日 23时11分)忘了附件(注意,打包了!)[snapback]213694[/snapback]虎兄,用了你的方法打包后,在运行安装包时会出现“运行时间错误(在-1:0):,不能导入DLL:files:psvince.dll.”,是什么地方错了吗?[attachmentid=14784]
xm 兄研究过的,早期 Inno 版本有些问题。用 Inno Setup 5.10b 以后的版本试试
虎哥,能不能把判断进程和判断窗口名称结合在一起呢?先判断进程,如果有这个程序的进程,就检查窗口名称,把这个程序关掉。谢谢,我是新人,想学习学习!
莫名兄 5.08 之前的汉化版有些问题,在调用 dll 文件时会出错,改用 5.08 以后的汉化版或英文原版就不会有这个问题了。
QUOTE(学生一号 @ 日 18时53分)虎哥,能不能把判断进程和判断窗口名称结合在一起呢?先判断进程,如果有这个程序的进程,就检查窗口名称,把这个程序关掉。谢谢,我是新人,想学习学习![snapback]213840[/snapback]如果判断了进程,为什么还要(多此一举)去判断窗口名称呢?判断窗口名称不是最佳方法,因为窗口标题许多是动态的,会不停变化。如果你是为了要强行关闭某个程序,你也可以通过进程去关闭。详见旧帖。
多谢虎哥,又学了一招
学到一招,谢谢老虎
又學到了一招了,多謝了虎哥~
查看完整版本: [--
Powered by
Time 0.048369 second(s),query:3 Gzip disabled}

我要回帖

更多关于 新世纪娱乐场 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信