Inno setup 有没有办法在Inno设置中读取系统信息

Inno setup 有没有办法在Inno设置中读取系统信息,inno-setup,Inno Setup,在安装过程中,是否有方法仅在欢迎向导页面读取Inno安装程序中的系统信息 我的意思是: 内存 操作系统 中央处理器 使用者 知识产权 MAC地址。 知道这件事是件好事。我想把这些信息放在一个文本文档中,然后保存在我的电脑上。我在网上根本找不到这方面的资料,我希望如果有人有这方面的经验,能有所帮助?有许多不同的方法来检索所有这些信息 但是一个通用的检索所有这些数据的方法是 您感兴趣的WMI类有: 函数WbemQueryWbemServices:变量;查询:字符串:变量; 变量 WbemObject

在安装过程中,是否有方法仅在欢迎向导页面读取Inno安装程序中的系统信息

我的意思是:

内存 操作系统 中央处理器 使用者 知识产权 MAC地址。
知道这件事是件好事。我想把这些信息放在一个文本文档中,然后保存在我的电脑上。我在网上根本找不到这方面的资料,我希望如果有人有这方面的经验,能有所帮助?

有许多不同的方法来检索所有这些信息

但是一个通用的检索所有这些数据的方法是

您感兴趣的WMI类有:

函数WbemQueryWbemServices:变量;查询:字符串:变量; 变量 WbemObjectSet:变量; 开始 结果:=Null; WbemObjectSet:=WbemServices.ExecQueryQuery; 如果不是VarisAllWBemObjectSet和WbemObjectSet.Count>0,则 开始 结果:=WbemObjectSet.ItemIndex0; 终止 终止 收集信息的程序; 变量 查询:字符串; WbemLocator,WbemServices:变量; 计算机系统、操作系统、处理器、网络适配器、网络适配器:变型; IPAddresss:字符串数组; 一、 I2:整数; 开始 WbemLocator:=CreateOleObject'WbemScripting.SWbemLocator'; WbemServices:=WbemLocator.ConnectServer'.'和'root\CIMV2'; 查询:=“从Win32_ComputerSystem中选择TotalPhysicalMemory、用户名”; 计算机系统:=WBEMQUERYWBMSERVICES,查询; 如果不是VarisAllComputerSystem,则 开始 日志格式'TotalPhysicalMemory=%s',[ComputerSystem.TotalPhysicalMemory]; 日志格式'UserName=%s',[ComputerSystem.UserName]; 终止 查询:=“从Win32_OperatingSystem中选择标题”; 操作系统:=WBEMQUERYWBMSERVICES,查询; 如果不是可变操作系统,则 开始 日志格式为'OperatingSystem=%s',[OperatingSystem.Caption]; 终止 查询:=“从Win32_处理器中选择名称”; 处理器:=WBEMQUERYWBMSERVICES,查询; 如果不是VarisAllProcessor,那么 开始 LogFormat'Processor=%s',[Processor.Name]; 终止 查询:= '从Win32_NetworkAdapterConfiguration中选择IPEnabled、IPAddress、MACAddress'; NetworkAdapters:=WbemServices.ExecQueryQuery; 如果不是VarisAllNetworkAdapters,则 开始 对于I:=0到NetworkAdapters。计数-1 do 开始 NetworkAdapter:=NetworkAdapters.ItemIndexI; 如果未启用VarisAllNetworkAdapter.MACAddress和NetworkAdapter.i,则 开始 LogFormat'Adapter%d MAC=%s',[I,NetworkAdapter.MACAddress]; 如果不是VarisAllNetworkAdapter.IPAddress,则 开始 IPAddress:=NetworkAdapter.IPAddress; 对于I2:=0以获取阵列长度IP地址-1 do 开始 日志格式为“适配器%d IP%d=%s”,[I,I2,IP地址[I2]]; 终止 终止 终止 终止 终止 终止 代码需要Unicode版本的Inno Setup,这是Inno Setup 6的唯一版本

与Win32_NetworkAdapter一起使用的配置在旧版Windows XP上不可用。看

它将为您提供以下信息:

TotalPhysicalMemory=12835962880
UserName=domain\martin
OperatingSystem=Microsoft Windows 10 Home
Processor=Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz
Adapter 1 MAC=11:51:67:D0:10:21
Adapter 1 IP 0=192.168.78.2
Adapter 1 IP 1=ef08::8da9:601e:3f8a:da00
Adapter 2 MAC=80:06:E6:10:F7:B9
Adapter 2 IP 0=192.168.1.3
要查看相关类中的所有可用信息,请在命令行上运行以下命令:

wmic computersystem get * /format:value
wmic os get * /format:value
wmic cpu get * /format:value
wmic nicconfig get * /format:value

此日志函数在何处写入这些值。我似乎无法在internet上找到函数。我得到一个未知标识符“Wbemquery”。在那个功能。我应该在我的脚本中包含一些我没有包含的内容吗?对不起,我已将该函数添加到我的答案中。日志函数记录到安装程序日志中。请看,您当然希望用写入文件或其他内容来替换日志类。我在行中发现了类型不匹配:ifnot VarNullNetworkAdapter.MACAdress和NetworkAdapter。那我就可以了。。。