mirror of
https://github.com/PhoenixPE/PhoenixPE.git
synced 2025-09-16 18:18:04 +02:00
Pre-flight Check Output Path verification has been enhanced to check for unsupported paths such as Ram drives, UNC paths, and mapped drives. (Issue #96)
- Includes new PhoenixAPI command - DriveGetType
This commit is contained in:
@@ -35,7 +35,7 @@ Author=Homes32
|
|||||||
Level=2
|
Level=2
|
||||||
Selected=True
|
Selected=True
|
||||||
Mandatory=True
|
Mandatory=True
|
||||||
Version=1.1.5.0
|
Version=1.2.0.0
|
||||||
Date=2024-06-29
|
Date=2024-06-29
|
||||||
|
|
||||||
[Variables]
|
[Variables]
|
||||||
@@ -46,32 +46,65 @@ Date=2024-06-29
|
|||||||
Echo,"Starting Pre-Flight Check..."
|
Echo,"Starting Pre-Flight Check..."
|
||||||
|
|
||||||
Run,%ScriptFile%,CheckEngine
|
Run,%ScriptFile%,CheckEngine
|
||||||
Run,%ScriptFile%,CheckPaths
|
|
||||||
If,%cb_CheckFreeSpace%,Equal,True,Run,%ScriptFile%,CheckDiskSpace
|
|
||||||
Run,%ScriptFile%,CheckTools
|
Run,%ScriptFile%,CheckTools
|
||||||
|
If,%cb_VerifyOutputPath%,Equal,True,Run,%ScriptFile%,CheckOutputPath
|
||||||
|
If,%cb_CheckFreeSpace%,Equal,True,Run,%ScriptFile%,CheckDiskSpace
|
||||||
If,%cb_CheckForSupportedBuildVer%,Equal,True,Run,%ScriptFile%,CheckVerifiedBuilds
|
If,%cb_CheckForSupportedBuildVer%,Equal,True,Run,%ScriptFile%,CheckVerifiedBuilds
|
||||||
Run,%ScriptFile%,CheckWinREVersion
|
Run,%ScriptFile%,CheckWinREVersion
|
||||||
|
|
||||||
[#CheckPaths#]
|
[#CheckOutputPath#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
// Name...........: CheckPaths
|
// Name...........: CheckOutputPath
|
||||||
// Description....: Verify that %OutputDir% is not a root drive (ie. d:\). This will cause issues with creating/cleaning up
|
// Description....: Verify that %OutputDir% is not a root drive (ie. d:\), network drive (mapped or UNC path), ramdrive, etc.
|
||||||
// the build environment.
|
|
||||||
// Syntax.........:
|
// Syntax.........:
|
||||||
// Parameters.....:
|
// Parameters.....:
|
||||||
// Return values..:
|
// Return values..:
|
||||||
// Author.........: Homes32
|
// Author.........: Homes32
|
||||||
// Remarks........:
|
// Remarks........: DISM and System,GetFreeSpace can't handle network paths (https://github.com/PhoenixPE/PhoenixPE/issues/96)
|
||||||
|
// DISM doesn't like RamDisks either (0x80071126 - ERROR_NOT_A_REPARSE_POINT https://theoven.org/viewtopic.php?p=1680#p1680)
|
||||||
|
// Root drives cause issues with creating/cleaning up the build environment.
|
||||||
// Related........: Called by [Process]
|
// Related........: Called by [Process]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
[CheckPaths]
|
[CheckOutputPath]
|
||||||
System,SetLocal
|
System,SetLocal
|
||||||
|
|
||||||
// Check if output is the root of a drive
|
// Check if output is the root of a drive
|
||||||
StrFormat,SPLIT,%OutputDir%,"\",0,%NumSplits%
|
StrFormat,Split,%OutputDir%,"\",0,%NumSplits%
|
||||||
If,%NumSplits%,Equal,1,Begin
|
If,%NumSplits%,Equal,1,Begin
|
||||||
Message,"Setting the OutputDir to the root of a drive is not supported.",Error
|
Message,"Setting the Output directory to the root of a drive is not supported.#$x#$xPlace the PhoenixPE files in a sub-directory (eg. C:\PhoenixPE) or adjust the Output directory path in the 'Config Source' script and try again.",Error
|
||||||
Halt,"Error: Setting the OutputDir to the root of a drive is not supported."
|
Halt,"Error: Setting the OutputDir to the root of a drive is not supported.#$x#$xPlace the PhoenixPE files in a sub-directory (eg. C:\PhoenixPE) or adjust the Output directory path in the 'Config Source' script and try again."
|
||||||
End
|
End
|
||||||
|
|
||||||
|
// Check for network path
|
||||||
|
StrFormat,Left,%OutputDir%,2,%PathPrefix%
|
||||||
|
If,%PathPrefix%,Equal,"\\",Begin
|
||||||
|
Message,"Setting the Output directory to a network location is not supported. This includes UNC paths and mapped drives.#$x#$xPlace the PhoenixPE files on a physical disk (eg. C:\PhoenixPE) or adjust the Output directory path in the 'Config Source' script and try again.",Error
|
||||||
|
Halt,"Error: Setting the OutputDir to a network location is not supported."
|
||||||
|
End
|
||||||
|
|
||||||
|
// Check for relative paths
|
||||||
|
StrFormat,Left,%OutputDir%,1,%PathPrefix%
|
||||||
|
If,%PathPrefix%,Equal,".",Begin
|
||||||
|
Message,"Setting the Output directory to a relative path is not supported.#$x#$xAdjust the Output directory path in the 'Config Source' script and try again.",Error
|
||||||
|
Halt,"Error: Setting the OutputDir to a relative path is not supported."
|
||||||
|
End
|
||||||
|
|
||||||
|
// Check Output drive type
|
||||||
|
StrFormat,Left,%OutputDir%,3,%DriveLetter%
|
||||||
|
DriveGetType,%DriveLetter%
|
||||||
|
Set,%DriveType%,#r
|
||||||
|
If,%DriveType%,Equal,"",Begin
|
||||||
|
// Try to catch any invalid paths/drive letters
|
||||||
|
Message,"Error: Could not determine the drive type for [%DriveLetter%]. Make sure your path exists.",Error
|
||||||
|
Halt,"Error: Could not determine the drive type for [%DriveLetter%]."
|
||||||
|
End
|
||||||
|
Else,Begin
|
||||||
|
If,Not,%DriveType%,Equal,"Removable",If,Not,%DriveType%,Equal,"Fixed",Begin
|
||||||
|
Message,"Setting the Output directory to a %DriveType% drive is not supported.#$x#$xPlace the PhoenixPE files on a physical disk (eg. C:\PhoenixPE) or adjust the Output directory path in the 'Config Source' script and try again.",Error
|
||||||
|
Halt,"Error: Setting the OutputDir to a %DriveType% drive is not supported."
|
||||||
|
End
|
||||||
|
End
|
||||||
|
|
||||||
System,EndLocal
|
System,EndLocal
|
||||||
|
|
||||||
[#CheckEngine#]
|
[#CheckEngine#]
|
||||||
@@ -216,7 +249,7 @@ Halt,"The build cannot continue because [ #1 ] is missing."
|
|||||||
// Return values..:
|
// Return values..:
|
||||||
// Author.........: Homes32
|
// Author.........: Homes32
|
||||||
// Remarks........: Note: GetWaikTools has been discontinued as of v21.04. Will need to rewrite this function to use adksetup.exe
|
// Remarks........: Note: GetWaikTools has been discontinued as of v21.04. Will need to rewrite this function to use adksetup.exe
|
||||||
// Related........: Called by [CheckTools]
|
// Related........: Called by [CheckTools], btn_DownloadProgram
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
[GetWaikTools]
|
[GetWaikTools]
|
||||||
Echo,"Downloading required tools from Windows 10 ADK...#$x#$xThis will only need to be done once."
|
Echo,"Downloading required tools from Windows 10 ADK...#$x#$xThis will only need to be done once."
|
||||||
@@ -231,7 +264,6 @@ DirDeleteEx,"%Tools%\x86\BCDBOOT"
|
|||||||
//DirDeleteEx,"%Tools%\x64\DISM"
|
//DirDeleteEx,"%Tools%\x64\DISM"
|
||||||
DirDeleteEx,"%Tools%\x64\BCDBOOT"
|
DirDeleteEx,"%Tools%\x64\BCDBOOT"
|
||||||
|
|
||||||
|
|
||||||
[#CheckVerifiedBuilds#]
|
[#CheckVerifiedBuilds#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
// Name...........: CheckVerifiedBuilds
|
// Name...........: CheckVerifiedBuilds
|
||||||
@@ -359,8 +391,8 @@ System,GetFreeSpace,%TargetDir%,%FreeMegabytes%
|
|||||||
Math,Mul,%FreeBytes%,%FreeMegabytes%,1048576
|
Math,Mul,%FreeBytes%,%FreeMegabytes%,1048576
|
||||||
StrFormat,IntToBytes,%FreeBytes%,%HumanReadableFreeSpace%
|
StrFormat,IntToBytes,%FreeBytes%,%HumanReadableFreeSpace%
|
||||||
If,%FreeMegabytes%,Smaller,%MinimumFreeMegabytes%,Begin
|
If,%FreeMegabytes%,Smaller,%MinimumFreeMegabytes%,Begin
|
||||||
Echo,"Warning: You have less then %HumanReadableMinimumFreeSpace% of free disk space on your target drive [%TargetDir%]. This may result in build failures.",Warn
|
Echo,"Warning: You have less then %HumanReadableMinimumFreeSpace% of free disk space on your target drive [%TargetDir%]. This may result in build failures.",Warn
|
||||||
Message,"Warning: You only have [%HumanReadableFreeSpace%] free disk space on your target drive, which is less then the recommended %HumanReadableMinimumFreeSpace%. This may result in build failures.",Warning,10
|
Message,"Warning: You only have [%HumanReadableFreeSpace%] free disk space on your target drive, which is less then the recommended %HumanReadableMinimumFreeSpace%. This may result in build failures.",Warning,10
|
||||||
End
|
End
|
||||||
|
|
||||||
// Check %OutputDir%
|
// Check %OutputDir%
|
||||||
@@ -368,12 +400,44 @@ System,GetFreeSpace,%OutputDir%,%FreeMegabytes%
|
|||||||
Math,Mul,%FreeBytes%,%FreeMegabytes%,1048576
|
Math,Mul,%FreeBytes%,%FreeMegabytes%,1048576
|
||||||
StrFormat,IntToBytes,%FreeBytes%,%HumanReadableFreeSpace%
|
StrFormat,IntToBytes,%FreeBytes%,%HumanReadableFreeSpace%
|
||||||
If,%FreeMegabytes%,Smaller,%MinimumFreeMegabytes%,Begin
|
If,%FreeMegabytes%,Smaller,%MinimumFreeMegabytes%,Begin
|
||||||
Echo,"Warning: You have less then %HumanReadableMinimumFreeSpace% of free disk space on your output drive [%OutputDir%]. This may result in build failures.",Warn
|
Echo,"Warning: You have less then %HumanReadableMinimumFreeSpace% of free disk space on your output drive [%OutputDir%]. This may result in build failures.",Warn
|
||||||
Message,"Warning: You only have [%HumanReadableFreeSpace%] free disk space on your output drive [%OutputDir%], which is less then the recommended %HumanReadableMinimumFreeSpace%. This may result in build failures.",Warning,10
|
Message,"Warning: You only have [%HumanReadableFreeSpace%] free disk space on your output drive [%OutputDir%], which is less then the recommended %HumanReadableMinimumFreeSpace%. This may result in build failures.",Warning,10
|
||||||
End
|
End
|
||||||
|
|
||||||
System,EndLocal
|
System,EndLocal
|
||||||
|
|
||||||
|
[#DownloadTools#]
|
||||||
|
// ===============================================================================================================================
|
||||||
|
// Name...........: DownloadTools
|
||||||
|
// Description....: Download Waik Tools
|
||||||
|
// Syntax.........:
|
||||||
|
// Parameters.....:
|
||||||
|
// Return values..:
|
||||||
|
// Author.........: Homes32
|
||||||
|
// Remarks........:
|
||||||
|
// Related........: btn_DownloadTools
|
||||||
|
// ===============================================================================================================================
|
||||||
|
[DownloadTools]
|
||||||
|
Run,%ScriptFile%,GetWaikTools
|
||||||
|
|
||||||
|
[#ClearDownloadCache#]
|
||||||
|
// ===============================================================================================================================
|
||||||
|
// Name...........: ClearDownloadCache
|
||||||
|
// Description....: Remove all downloaded setup and program files.
|
||||||
|
// Syntax.........: Run,%ScriptFile%,ClearDownloadCache
|
||||||
|
// Parameters.....:
|
||||||
|
// Return values..:
|
||||||
|
// Author.........: Homes32
|
||||||
|
// Remarks........:
|
||||||
|
// Related........: btn_PurgeCache
|
||||||
|
// ===============================================================================================================================
|
||||||
|
[ClearDownloadCache]
|
||||||
|
Echo,"Removing downloaded tools..."
|
||||||
|
DirDeleteEx,%Tools%\x86\DISM
|
||||||
|
DirDeleteEx,%Tools%\x64\DISM
|
||||||
|
DirDeleteEx,%Tools%\x86\Oscdimg
|
||||||
|
DirDeleteEx,%Tools%\x64\Oscdimg
|
||||||
|
|
||||||
[#SetDefaultOptions#]
|
[#SetDefaultOptions#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
// Name...........: SetDefaultOptions
|
// Name...........: SetDefaultOptions
|
||||||
@@ -386,8 +450,9 @@ System,EndLocal
|
|||||||
// Related........: btn_SetDefaultOptions
|
// Related........: btn_SetDefaultOptions
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
[SetDefaultOptions]
|
[SetDefaultOptions]
|
||||||
WriteInterface,Value,%ScriptFile%,Interface,cb_CheckForSupportedBuildVer,True
|
WriteInterface,Value,%ScriptFile%,Interface,cb_VerifyOutputPath,True
|
||||||
WriteInterface,Value,%ScriptFile%,Interface,cb_CheckFreeSpace,True
|
WriteInterface,Value,%ScriptFile%,Interface,cb_CheckFreeSpace,True
|
||||||
|
WriteInterface,Value,%ScriptFile%,Interface,cb_CheckForSupportedBuildVer,True
|
||||||
|
|
||||||
[#ToggleAdvancedOptions#]
|
[#ToggleAdvancedOptions#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
@@ -416,8 +481,9 @@ Else,Begin
|
|||||||
WriteInterface,Tooltip,%ScriptFile%,Interface,btn_AdvancedOptions,"Show Advanced Options"
|
WriteInterface,Tooltip,%ScriptFile%,Interface,btn_AdvancedOptions,"Show Advanced Options"
|
||||||
End
|
End
|
||||||
|
|
||||||
WriteInterface,Visible,%ScriptFile%,Interface,cb_CheckForSupportedBuildVer,%Toggle%
|
WriteInterface,Visible,%ScriptFile%,Interface,cb_VerifyOutputPath,%Toggle%
|
||||||
WriteInterface,Visible,%ScriptFile%,Interface,cb_CheckFreeSpace,%Toggle%
|
WriteInterface,Visible,%ScriptFile%,Interface,cb_CheckFreeSpace,%Toggle%
|
||||||
|
WriteInterface,Visible,%ScriptFile%,Interface,cb_CheckForSupportedBuildVer,%Toggle%
|
||||||
WriteInterface,Visible,%ScriptFile%,Interface,bvl_AdvancedOptions,%Toggle%
|
WriteInterface,Visible,%ScriptFile%,Interface,bvl_AdvancedOptions,%Toggle%
|
||||||
System,EndLocal
|
System,EndLocal
|
||||||
|
|
||||||
@@ -447,18 +513,23 @@ Message,"This script verifies that essential tools are available, PEBakery is co
|
|||||||
// Related........:
|
// Related........:
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
[Interface]
|
[Interface]
|
||||||
|
btn_DownloadProgram=,1,8,448,5,25,25,DownloadTools,VistalcoDownload_16.png,False,"__Download WAIK tools."
|
||||||
|
btn_PurgeCache=,1,8,479,5,25,25,ClearDownloadCache,Trash.ico,True,"__Remove all downloaded tools."
|
||||||
btn_SetDefaultOptions=,1,8,543,5,25,25,SetDefaultOptions,SetDefaults_16.png,True,"__Restore Defaults"
|
btn_SetDefaultOptions=,1,8,543,5,25,25,SetDefaultOptions,SetDefaults_16.png,True,"__Restore Defaults"
|
||||||
btn_AdvancedOptions=,1,8,574,5,25,25,ToggleAdvancedOptions,Advanced_16.png,True,"__Show Advanced Options"
|
btn_AdvancedOptions=,1,8,574,5,25,25,ToggleAdvancedOptions,Advanced_16.png,True,"__Show Advanced Options"
|
||||||
btn_ScriptInfo=,1,8,605,5,25,25,ShowScriptInfo,Help_16.png,True,"__Script Info"
|
btn_ScriptInfo=,1,8,605,5,25,25,ShowScriptInfo,Help_16.png,True,"__Script Info"
|
||||||
bvl_AdvancedOptions="Advanced Options",0,12,5,50,200,115,8,Bold
|
bvl_AdvancedOptions="Advanced Options",0,12,5,50,200,115,8,Bold
|
||||||
cb_CheckForSupportedBuildVer="Verify Source Build Number",0,3,12,64,150,18,True,"__Check and see if the Win10 build version has been tested with this project."
|
cb_VerifyOutputPath="Verify Output Path",0,3,12,64,150,18,True
|
||||||
cb_CheckFreeSpace="Verify Free Disk Space",0,3,12,84,150,18,True,"__Verify we have the free disk space required to build this project."
|
cb_CheckFreeSpace="Verify Free Disk Space",0,3,12,84,150,18,True,"__Verify we have the free disk space required to build this project."
|
||||||
|
cb_CheckForSupportedBuildVer="Verify Source Build Number",0,3,12,104,150,18,True,"__Check and see if the Win10 build version has been tested with this project."
|
||||||
|
|
||||||
[InterfaceEncoded]
|
[InterfaceEncoded]
|
||||||
Advanced_16.png=1722,2396
|
Advanced_16.png=1722,2396
|
||||||
SetDefaults_16.png=2475,3404
|
SetDefaults_16.png=2475,3404
|
||||||
Help_16.png=2830,3868
|
Help_16.png=2830,3868
|
||||||
Advanced_Exit_16.png=705,1048
|
Advanced_Exit_16.png=705,1048
|
||||||
|
VistalcoDownload_16.png=927,1348
|
||||||
|
Trash.ico=1150,1228
|
||||||
|
|
||||||
[AuthorEncoded]
|
[AuthorEncoded]
|
||||||
lists.png=10008,13436
|
lists.png=10008,13436
|
||||||
@@ -486,3 +557,11 @@ lines=0
|
|||||||
[EncodedFile-InterfaceEncoded-Advanced_Exit_16.png]
|
[EncodedFile-InterfaceEncoded-Advanced_Exit_16.png]
|
||||||
lines=0
|
lines=0
|
||||||
0=iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACc0lEQVQ4y3XTX2jWZRQH8M/z+pttvIVuY5lMzDRppugioj9Q4EUlUZpFF1JCFBaV1BK68aJuQrqJrMibdhEGXrXKxDBqw4vSiNxGk7G37SJRKtvbmvNtre3V00WPISPP1cPzPefw/X7POVw5duArHML9V0oqIgKklFpxJ/oiYjql1IbFWIQ1EfFFSukqbMVARFSgyMVL8Ty2Y39K6QTuwBwuYG1K6R5sxOP4JqX0RkRUUkRIKT2AfRhDM5owg4WZaeR3DRNYjd0RcaDICcdwAPfhHBKGMZjxTtycsRbsz94QEbIPd+NH9ONVtF+Gtee//tz44UtYwiasRUfW/QO6ImL8crezqXszk9M4jmqBF3AdZjP1wfnFmel4SmkQG9CGR/FHQi8WdbQ2L9y18d4Vt1+/st5wsT586lTlrU09n/XMY/EKnsTvaMRUwo7b2lrWf7jtqeda25cvuHqu7q+GwvRENU4Mfv3M5iO93fMkrMMQBlArIuL9vs0PflIuGhZc88gWf38/oOmW9WYPHkrLyi2vd61u/+DtsZ+X4GmsyTKPRkQ3FFuWNqeuVes2zJwcMnX4c81PbFP79jvTx48p1WpLPjpTfQ03ZPMmUcatKaUjEXFGROhetWL45NbHYubseFR7DsbsxGSM7nw5Dt/UcaGhlIYz3Ureiy/xE56NiH9XeWj2z30rRyvvFHv2pPO9fZo+7TQ5MuLjqeqvcxfjHH7Bu3kCL6EvH5oUEbYvb03LSsXuztS4a3GpaKmXnD86O92/9/TZcj2iEb0R0ZXNfAgjETH6X4NL8eKN1zaWS6W2uYjJN8d+uws7s+aeiHjv/875HzeNCzhN2c5EAAAAAElFTkSuQmCCeJwTcUwpS8xLTk2Jd63ILIk3NNMryEtnGAUjBRxkwi/faXT+FiMDAK67CoVdXuX/AQAAAAIAAAAsAAAAwQIAAAAAAAABAAAAAAAAAAAAAAA
|
0=iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACc0lEQVQ4y3XTX2jWZRQH8M/z+pttvIVuY5lMzDRppugioj9Q4EUlUZpFF1JCFBaV1BK68aJuQrqJrMibdhEGXrXKxDBqw4vSiNxGk7G37SJRKtvbmvNtre3V00WPISPP1cPzPefw/X7POVw5duArHML9V0oqIgKklFpxJ/oiYjql1IbFWIQ1EfFFSukqbMVARFSgyMVL8Ty2Y39K6QTuwBwuYG1K6R5sxOP4JqX0RkRUUkRIKT2AfRhDM5owg4WZaeR3DRNYjd0RcaDICcdwAPfhHBKGMZjxTtycsRbsz94QEbIPd+NH9ONVtF+Gtee//tz44UtYwiasRUfW/QO6ImL8crezqXszk9M4jmqBF3AdZjP1wfnFmel4SmkQG9CGR/FHQi8WdbQ2L9y18d4Vt1+/st5wsT586lTlrU09n/XMY/EKnsTvaMRUwo7b2lrWf7jtqeda25cvuHqu7q+GwvRENU4Mfv3M5iO93fMkrMMQBlArIuL9vs0PflIuGhZc88gWf38/oOmW9WYPHkrLyi2vd61u/+DtsZ+X4GmsyTKPRkQ3FFuWNqeuVes2zJwcMnX4c81PbFP79jvTx48p1WpLPjpTfQ03ZPMmUcatKaUjEXFGROhetWL45NbHYubseFR7DsbsxGSM7nw5Dt/UcaGhlIYz3Ureiy/xE56NiH9XeWj2z30rRyvvFHv2pPO9fZo+7TQ5MuLjqeqvcxfjHH7Bu3kCL6EvH5oUEbYvb03LSsXuztS4a3GpaKmXnD86O92/9/TZcj2iEb0R0ZXNfAgjETH6X4NL8eKN1zaWS6W2uYjJN8d+uws7s+aeiHjv/875HzeNCzhN2c5EAAAAAElFTkSuQmCCeJwTcUwpS8xLTk2Jd63ILIk3NNMryEtnGAUjBRxkwi/faXT+FiMDAK67CoVdXuX/AQAAAAIAAAAsAAAAwQIAAAAAAAABAAAAAAAAAAAAAAA
|
||||||
|
|
||||||
|
[EncodedFile-InterfaceEncoded-VistalcoDownload_16.png]
|
||||||
|
lines=0
|
||||||
|
0=iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADZklEQVQ4jUWT3WubdRTHP89L3p8mTfpim7ZL37ZZp6UTV1F0g00dXky9myAiXhf8A0QRvFCGF96o4IViJ0Mm4lSUIbIqdVs6W+3W1da+LW3SpC9Jm6TJ8+RJ+uT5SdLBDpzD4cD3e76Hc470zIUTHJiMU4szP3Yav+stXr00PVQqNL4SG1ea/ltYW29wp8Y2/roxuTF2CzOhANU6StVLe/VEkqBg5sHv8vf2D38b+Hv4bJdS5chRgcdUuZ28hud4elr+ff1lSCbud0UtapkaHCFnMLNPhc8+/8XsyEsEIxK4VYVCBXo98PP8Ga7eOnbc8l2/pzg/HHD1xJaNhSxq/+N9gI1pO/CrI9+c7yM46AMnIGqDqTCgQjoCi3EX0ptBVaRPfR/76Z/BuoL9vIGo6pjejhcOO7wnxVacsd0k4YYAgz2P4LEhU3PHCk88d4Ngbpu07H4sfT1y3mTtspqYy2OXDfTW1tOPhsfJKVPMbW7QUI4Q7nqPlKgwkbvJkrFNceMQvt4Z8EPjcNuZTHTtslpKeqESIG/FO2NCojtwglTvDI41ia/iP5DyXqNs5PFrTSwsj5CdPYe76Qr5lcZwfYT8TQ+KpWNFAtmELfGj8TUxLUdDeYaN6hKhUBiqMgV1hsaBL1m68ixWIUOlulhfn6IdbaVcbqN8+x2s0OJrpcN3kHRw52t1F3ljmb29KusJnYr0L67QFLolMKaXPy8nzEm19ekZ2WpWPFu/Vv5wO1djzYfoqcjgmHuIwuIHbGkfoYWmEXYDOztFKGqUk3rJuJO9VFdguhGyJd7vPJe46n+4YPs68HqCkDO20AJRukIa89FtbKuCpNrsb/vIfLf1hlXMT9UJnL1QXCLqj8ivt58S7e2tENLADkK3v8zUxR2yq1k8ARV5p43cpPPdStb3mRLqROgpVFcASXFhbE+IC76I8qnvySpeDY41aUx+coS9TRdDJ1swkyqbt/QdW6/OSk1VkOSDUxZVhOIkZGaFvjshVoVX7u4fcpP8s2Iu3M381tf34oqc6rJ25+Y3S/vpFcknTUv79sHz1Ajq0WbX6WfU3LOFdU8dLewL7o5XPqYl/vZc9Beqqx0QEjg0LzIC6T74AYF0QFjc5KJtWslk1Oos5Rn1toDd7MDINSK7aydvI+QHYID/Ab48jqdfCQxIAAAAAElFTkSuQmCCeJwTD8ssLknMSc53yS/Py8lPTIk3NNMryEtnGAUjAsxnxi+fwnL8OSMDAKdDC4fwuePJAQAAAAIAAAAvAAAAnwMAAAAAAAABAAAAAAAAAAAAAAA
|
||||||
|
|
||||||
|
[EncodedFile-InterfaceEncoded-Trash.ico]
|
||||||
|
lines=0
|
||||||
|
0=eJx11PtLU2EYB/B3KmV0M6IbSdkITlDQFQq6YBEWERV07w8IS43ykoMczs2juc2tXdxsudratDZ0qbPNqdlmUpabZUtnZRdL0yTrWJueY+QT72qhqx74/vJyPue853necxBiIRaKiUGIheJQYhRC8xFCKxBCMQihOPRrHVd8FPqr9uzeFb1je/zME8ePbSIIQkwQhIogCPV/omKz2YLY2MULN6xfN+PA/n1T8D2K5dKII4cP5bjdreD1eqHL5wOapqGvrw9sthooKdFAVVUlPH3aDkqlEthxcQvSziSxJu6D5HFTtVrtuF6vB4PBAFarFcxmM8jlMiDJXLh0SQo6nQ74OTx//JbNc8LfQ1fAPfre104NfXhHMaMjFMMw1JehT1S398lwh7uFarvXGIxJUfCYvXTJ3HBvUYlOh3xHQ3WgQZHDtNksgdviC7RVyKFb7zqC3q5XvYqKiMAtnlQ3xNws7Pu7u4YdkizGXpA+5q42BWolXLqKTGUa9MV+7O/cvNY7a/q0ZeHeLBNIse9otH1r0ghpanBwGO//1bN2qqlUE6jKO09j77SU9c+bPXN1uC9XXtRj73VU+h15yd/7u7u+Yv/G94yq5p0es0uzR7Fvrqn4yF40b9tlcd6k/tcbVDXYD7x+Qb184PJ7TCWjg329VKvFGHAZigMt9sph7FvqrJ9WLYvdqxLmTvLWq/L7of69fujyO0XnvnsqS0fqyOQxh5Qb3DuO21n3edPK5SeKhGREyDbXVrOabxm6Qp4e8VMvnLaAx2Icua+Xj7bfaww+G8fTdIdK2LjmVFpSYmTIG4sk0a328t5/zb+n+zk1cf44B3duzdq7O2FqyOfxeUkikXBcLpOBpLAQNBpN8Ayq1Wrg8/mQkZEOHA4H8vPzQSaTwanExKE9uxKmh7wwn+Q+evQQfJ2d8LjNAwMD/cAwDPT09EBtrR202itgNBrA1eSCzs4OUCoVP1LPJP/5GrUa9aqUlJR6hUIxjs95udkEprJSuFFqDJ59taoIpBIJWCoqQCwSQUZ6mjJ8/rgkhYVrOZmZgus63Ycyo9ErEhakZWdnXzt39mwmmZtbIeDnnCQFgl8/gwnFYyHkjPxH8Prv4GsmJRKht1MR+gkUry6xeJzjDClKLM7Qy0zOZxgFIxDUsUDoQGbs8iFCkXoMbAB+CQU+pPfbDwEAAAACAAAAJAAAAFEDAAAAAAAAAQAAAAAAAAAAAAAA
|
||||||
|
@@ -32,8 +32,8 @@
|
|||||||
Title=PhoenixPE API
|
Title=PhoenixPE API
|
||||||
Author=Homes32
|
Author=Homes32
|
||||||
Description=PhoenixPE scripting support library.
|
Description=PhoenixPE scripting support library.
|
||||||
Version=1.9.4.0
|
Version=1.10.0.0
|
||||||
Date=2024-06-28
|
Date=2024-07-06
|
||||||
Level=0
|
Level=0
|
||||||
Selected=None
|
Selected=None
|
||||||
|
|
||||||
@@ -55,6 +55,7 @@ BitToggle=Run,%API%,_PhoenixAPI_BitToggle
|
|||||||
ConvertImage=Run,%API%,_PhoenixAPI_ConvertImage
|
ConvertImage=Run,%API%,_PhoenixAPI_ConvertImage
|
||||||
DirDeleteEx=Run,%API%,_PhoenixAPI_DirDeleteEx
|
DirDeleteEx=Run,%API%,_PhoenixAPI_DirDeleteEx
|
||||||
DISM=Run,%API%,_PhoenixAPI_DISM
|
DISM=Run,%API%,_PhoenixAPI_DISM
|
||||||
|
DriveGetType=Run,%API%,_PhoenixAPI_DriveGetType
|
||||||
FileCopyEx=Run,%API%,_PhoenixAPI_FileCopyEx
|
FileCopyEx=Run,%API%,_PhoenixAPI_FileCopyEx
|
||||||
FileDeleteEx=Run,%API%,_PhoenixAPI_FileDeleteEx
|
FileDeleteEx=Run,%API%,_PhoenixAPI_FileDeleteEx
|
||||||
FileSearch=Run,%API%,_PhoenixAPI_FileSearch
|
FileSearch=Run,%API%,_PhoenixAPI_FileSearch
|
||||||
@@ -735,6 +736,49 @@ Return,%ExitCode%
|
|||||||
|
|
||||||
System,EndLocal
|
System,EndLocal
|
||||||
|
|
||||||
|
[#_PhoenixAPI_DriveGetType#]
|
||||||
|
// ===============================================================================================================================
|
||||||
|
// Name...........: DriveGetType
|
||||||
|
// Description....: Get the drive type.
|
||||||
|
// Syntax.........: DriveGetType,<DriveLetter>
|
||||||
|
// Parameters.....: #1 Drive Letter - The drive letter to query.
|
||||||
|
// Return values..: #r - Success - One of the following values:
|
||||||
|
// - Unknown
|
||||||
|
// - Removable
|
||||||
|
// - Fixed
|
||||||
|
// - Network
|
||||||
|
// - CDROM
|
||||||
|
// - RAMDisk
|
||||||
|
// Author.........: Homes32
|
||||||
|
// Remarks........: This command is a work in progress and may change without notice.
|
||||||
|
// Usage: PhoenixAPI-DriveGetType.a3x <DriveLetter> <OutputFile>
|
||||||
|
// DriveLetter - Drive Letter. Ex. B:
|
||||||
|
// OutputFile - A standard .ini formatted File
|
||||||
|
// [DriveType] contains key=value pairs in the format of <DriveLetter>=<DriveType> ex. C:=Fixed
|
||||||
|
// Exit codes: 0 - Success
|
||||||
|
// 1 - Syntax Error
|
||||||
|
// 2 - Invalid Path
|
||||||
|
// 3 - Failed to get drive type
|
||||||
|
// Related........:
|
||||||
|
// ===============================================================================================================================
|
||||||
|
[_PhoenixAPI_DriveGetType]
|
||||||
|
System,SetLocal
|
||||||
|
GetParam,1,%DriveLetter%
|
||||||
|
|
||||||
|
If,%DriveLetter%,Equal,"",Halt,"Syntax Error: Drive letter was not specified."
|
||||||
|
|
||||||
|
StrFormat,EndTrim,%DriveLetter%,"\",%DriveLetter%
|
||||||
|
|
||||||
|
ShellExecute,Hide,"%Tools%\%HostArch%\AutoIt3.exe","%Tools%\a3x\PhoenixAPI-DriveGetType.a3x #$q%DriveLetter%#$q #$q%ProjectTemp%\PhoenixAPI-DriveGetType.ini#$q"
|
||||||
|
|
||||||
|
If,Not,%ExitCode%,Equal,0,Halt,"DriveGetType Error: Unable get drive type for [%DriveLetter%]. The command returned [%ExitCode%]."
|
||||||
|
|
||||||
|
// Return the result as #r
|
||||||
|
IniRead,"%ProjectTemp%\PhoenixAPI-DriveGetType.ini","DriveType",%DriveLetter%,%DriveType%,"Default="
|
||||||
|
Return,%DriveType%
|
||||||
|
|
||||||
|
System,EndLocal
|
||||||
|
|
||||||
[#_PhoenixAPI_FileCopyEx#]
|
[#_PhoenixAPI_FileCopyEx#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
// Name...........: FileCopyEx
|
// Name...........: FileCopyEx
|
||||||
@@ -840,6 +884,9 @@ System,SetLocal
|
|||||||
GetParam,1,%Path%
|
GetParam,1,%Path%
|
||||||
GetParam,2,%SearchFilter%
|
GetParam,2,%SearchFilter%
|
||||||
|
|
||||||
|
If,%Path%,Equal,"",Halt,"Syntax Error: Path was not specified."
|
||||||
|
If,%SearchFilter%,Equal,"",Halt,"Syntax Error: Search filter was not specified."
|
||||||
|
|
||||||
// Recurse the path looking for the specified file
|
// Recurse the path looking for the specified file
|
||||||
ShellExecute,Hide,"%Tools%\%HostArch%\AutoIt3.exe","%Tools%\a3x\PhoenixAPI-FileSearch.a3x #$q%Path%#$q #$q%SearchFilter%#$q #$q%ProjectTemp%\PhoenixAPI-FileSearch.ini#$q"
|
ShellExecute,Hide,"%Tools%\%HostArch%\AutoIt3.exe","%Tools%\a3x\PhoenixAPI-FileSearch.a3x #$q%Path%#$q #$q%SearchFilter%#$q #$q%ProjectTemp%\PhoenixAPI-FileSearch.ini#$q"
|
||||||
|
|
||||||
|
BIN
Projects/PhoenixPE/Tools/a3x/PhoenixAPI-DriveGetType.a3x
Normal file
BIN
Projects/PhoenixPE/Tools/a3x/PhoenixAPI-DriveGetType.a3x
Normal file
Binary file not shown.
Reference in New Issue
Block a user