惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
V
V2EX
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
F
Full Disclosure
Y
Y Combinator Blog
V
V2EX - 技术
Attack and Defense Labs
Attack and Defense Labs
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
SecWiki News
SecWiki News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
量子位
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AWS News Blog
AWS News Blog
Blog — PlanetScale
Blog — PlanetScale
爱范儿
爱范儿
K
Kaspersky official blog
B
Blog
A
Arctic Wolf
Hacker News: Ask HN
Hacker News: Ask HN
L
LangChain Blog
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
Lohrmann on Cybersecurity
D
Docker
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
The Last Watchdog
The Last Watchdog
S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - Max Woods

Delphi XE8,C++ Builder XE8,RAD Studio XE8 官方 ISO 文件下载,附激活工具 PC 安装MAC InnoSetup能够实现“安装细节描述”界面吗? 在Unicode版Inno Setup中使用ISSkin Inno Setup使用技巧 用非管理员权限启动主程序,并用管理员权限启动子程序,导致WM_COPYDATA消息发送失败的问题 Inno setup 安装*.inf文件_示例 自动安装驱动程序代码 自动安装驱动程序 windows xp/7命令提示符强制结束指定进程 Delphi 如何让程序获取权限结束指定进程? Windows下如何枚举所有进程 使用MFC提供的Http类下载和上传文件 如何在安装程序中判断操作系统是否是64位 inno INNO setup安装卸载钱判断进程中是否在运行总结 innosetup安装之前关闭进程 INNO安装卸载自动结束进程插件使用 Windows下提升进程权限 《Windows核心编程》学习笔记(9)– 在win7或者vista系统下提升一个进程的运行权限
Inno Setup 卸载前关闭进程或服务 x86 x64
Max Woods · 2014-12-01 · via 博客园 - Max Woods

1、32位程序的PSVince.dll插件方法。

[Setup]

AppName=PSVince

AppVerName=PSVince 1.0

DisableProgramGroupPage=true

DisableStartupPrompt=true

OutputDir=.

OutputBaseFilename=testpsvince

Uninstallable=false

DisableDirPage=true

DefaultDirName={pf}\PSVince

[Files]

Source: psvince.dll; Flags: dontcopy

[Code]

function IsModuleLoaded(modulename: AnsiString ):  Boolean;

external 'IsModuleLoaded@files:psvince.dll stdcall';

function InitializeSetup(): Boolean;

begin

  if(IsModuleLoaded( 'notepad.exe' )) then

    begin

      MsgBox('Running', mbInformation, MB_OK);

      Result := false;

    end

  else

    begin

      MsgBox('Not running', mbInformation, MB_OK);

      Result := true;

    end

end;

2、 PSVince控件在64位系统(Windows 7/Server 2008/Server 2012)下无法检测到进程,使用下面的函数可以解决。

function IsAppRunning(const FileName : string): Boolean;

var

    FSWbemLocator: Variant;

    FWMIService   : Variant;

    FWbemObjectSet: Variant;

begin

    Result := false;

    FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');

    FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');

    FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));

    Result := (FWbemObjectSet.Count > 0);

    FWbemObjectSet := Unassigned;

    FWMIService := Unassigned;

    FSWbemLocator := Unassigned;

end;