windows - Inno Setup 检测是否安装了 Apache
问题描述
如果在计算机上安装了 Apache for Windows,是否有一种万无一失的方法来检测使用 Inno Setup?我正在使用 Apache Lounge 版本 ( https://www.apachelounge.com/download/ ),它没有内置安装程序,但如果需要,它会安装特定服务。
我可以搜索计算机上是否存在该 Windows 服务,但我担心其他 Apache 版本可能会安装不同的服务或根本没有服务(但它可能仍在后台运行并产生干扰)。
解决方案
您可以检查名称中包含“apache”关键字的任何正在运行的进程(甚至服务也是进程)。
您可以使用此答案中的代码:
How to check with Inno Setup, if a process is running at a Windows 2008 R2 64bit?
只需将查询替换为:
Format('SELECT Name FROM Win32_Process Where Name like "%%%s%%"', [FileName])
然后你可以像这样使用它:
function InitializeSetup(): Boolean;
begin
Result := True;
if IsAppRunning('apache') then
begin
MsgBox('Apache is installed and running, cannot proceed.', mbError, MB_OK);
Result := False;
end;
end;
推荐阅读
- android - 在 android studio 中更新 gradle 后,矢量可绘制图标的混乱
- javascript - 在本地不可变地存储一个 jQuery 对象以供以后使用
- azure - 在流量管理器和 Web 应用程序上配置自定义域
- python-2.7 - 添加选项 -w 时出现 Pyinstaller 错误
- c# - 在 TableLayout 中隐藏一行
- android - 程序类型已经存在:android.support.design.widget.CoordinatorLayout$Behavior
- python-3.x - 在 sqlalchemy 中,反映来自 MSSQL 的元数据并应用于 ORACLE 错误
- tensorflow - 使用 Tensorflow 对象检测 API 进行迁移学习时,如何更改隐藏层的数量?
- r - 有效地从矩阵列中减去
- react-native - React Native Material Dropdown - 如何处理 onPress 事件下拉列表?