Inno setup Inno设置-如何识别源目录的USB驱动器
我希望Inno安装编译器自动检测USB驱动器号,并将其用作安装程序文件的源路径 但我不知道如何准确识别正确的驱动器。什么是正确的Inno setup Inno设置-如何识别源目录的USB驱动器,inno-setup,drive,Inno Setup,Drive,我希望Inno安装编译器自动检测USB驱动器号,并将其用作安装程序文件的源路径 但我不知道如何准确识别正确的驱动器。什么是正确的SourceDir= 源驱动器不应是固定驱动器。Inno安装程序无法自行完成此操作。但您可以从Inno Setup预处理器调用一个简单的PowerShell代码 根据,以下内容将把SourceDir设置为第一个可移动驱动器(不一定是USB驱动器,也不使用USB硬盘驱动器)。如果您确实想要第一个USB驱动器,请尝试 非常感谢你的帮助,成功了。你在堆栈溢出方面做得很好@ma
SourceDir=
源驱动器不应是固定驱动器。Inno安装程序无法自行完成此操作。但您可以从Inno Setup预处理器调用一个简单的PowerShell代码 根据,以下内容将把
SourceDir
设置为第一个可移动驱动器(不一定是USB驱动器,也不使用USB硬盘驱动器)。如果您确实想要第一个USB驱动器,请尝试
非常感谢你的帮助,成功了。你在堆栈溢出方面做得很好@martin。你在我的项目上真的帮了我很多:)
#define GetUsbDrive() \
Local[0] = AddBackslash(GetEnv("TEMP")) + "usb_drive.txt", \
Local[1] = \
"-ExecutionPolicy Unrestricted -Command """ + \
"$drive = @(Get-WmiObject Win32_Volume -Filter DriveType='2'); " + \
"if ($drive) { $drive = $drive[0].DriveLetter }; " + \
"Set-Content -Path '" + Local[0] + "' -NoNewline -Value $drive " + \
"""", \
Exec("powershell.exe", Local[1], SourcePath, , SW_HIDE), \
Local[2] = FileOpen(Local[0]), \
Local[3] = FileRead(Local[2]), \
FileClose(Local[2]), \
DeleteFileNow(Local[0]), \
Local[3]
#define UsbDrive GetUsbDrive()
#if Len(UsbDrive) == 0
#error No USB drive found
#endif
[Setup]
SourceDir={#UsbDrive}