diff options
Diffstat (limited to 'Examples/FileFunc.nsi')
-rwxr-xr-x | Examples/FileFunc.nsi | 1503 |
1 files changed, 752 insertions, 751 deletions
diff --git a/Examples/FileFunc.nsi b/Examples/FileFunc.nsi index 0f59e74..de4b4e1 100755 --- a/Examples/FileFunc.nsi +++ b/Examples/FileFunc.nsi @@ -1,751 +1,752 @@ -;_____________________________________________________________________________ -; -; File Functions -;_____________________________________________________________________________ -; -; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru) - -Name "File Functions" -OutFile "FileFunc.exe" -Caption "$(^Name)" -XPStyle on - -!include "WinMessages.nsh" -!include "FileFunc.nsh" - -!insertmacro Locate -!insertmacro GetSize -!insertmacro DriveSpace -!insertmacro GetDrives -!insertmacro GetTime -!insertmacro GetFileAttributes -!insertmacro GetFileVersion -!insertmacro GetExeName -!insertmacro GetExePath -!insertmacro GetParameters -!insertmacro GetOptions -!insertmacro GetRoot -!insertmacro GetParent -!insertmacro GetFileName -!insertmacro GetBaseName -!insertmacro GetFileExt -!insertmacro BannerTrimPath -!insertmacro DirState -!insertmacro RefreshShellIcons - -Var INI -Var HWND -Var STATE -Var FUNCTION -Var LOCATE1 -Var LOCATE2 -Var GETSIZE1 -Var GETSIZE2 -Var GETSIZE3 -Var GETSIZE4 -Var GETSIZE5 -Var GETSIZE6 -Var DRIVESPACE1 -Var DRIVESPACE2 -Var GETDRIVES1 -Var GETTIME1 -Var GETTIME2 -Var GETFILEATTRIBUTES1 -Var GETFILEATTRIBUTES2 -Var GETFILEVERSION1 -Var GETOPTIONS1 -Var GETOPTIONS2 -Var GETROOT1 -Var GETPARENT1 -Var GETFILENAME1 -Var GETBASENAME1 -Var GETFILEEXT1 -Var BANNERTRIMPATH1 -Var BANNERTRIMPATH2 -Var DIRSTATE1 - -Page Custom ShowCustom LeaveCustom - -Function ShowCustom - InstallOptions::initDialog /NOUNLOAD "$INI" - Pop $hwnd - GetDlgItem $1 $HWND 1201 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1202 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1206 - EnableWindow $1 0 - SendMessage $1 ${WM_ENABLE} 1 0 - StrCpy $LOCATE1 $DOCUMENTS - StrCpy $LOCATE2 '/L=FD /M=*.* /S=0B /G=1 /B=0' - StrCpy $GETSIZE1 '$WINDIR' - StrCpy $GETSIZE2 '/M=Explorer.exe /S=0K /G=0' - StrCpy $GETSIZE3 '$PROGRAMFILES\Common Files' - StrCpy $GETSIZE4 '/S=0M' - StrCpy $GETSIZE5 '$WINDIR' - StrCpy $GETSIZE6 '/G=0' - StrCpy $DRIVESPACE1 'C:\' - StrCpy $DRIVESPACE2 '/D=F /S=M' - StrCpy $GETDRIVES1 'FDD+CDROM' - StrCpy $GETTIME1 '$WINDIR\Explorer.exe' - StrCpy $GETTIME2 'C' - StrCpy $GETFILEATTRIBUTES1 'C:\IO.SYS' - StrCpy $GETFILEATTRIBUTES2 'ALL' - StrCpy $GETFILEVERSION1 '$WINDIR\Explorer.exe' - StrCpy $GETOPTIONS1 '/SILENT=yes /INSTDIR="$PROGRAMFILES\Common Files"' - StrCpy $GETOPTIONS2 '/INSTDIR=' - StrCpy $GETROOT1 'C:\path\file.dll' - StrCpy $GETPARENT1 'C:\path\file.dll' - StrCpy $GETFILENAME1 'C:\path\file.dll' - StrCpy $GETBASENAME1 'C:\path\file.dll' - StrCpy $GETFILEEXT1 'C:\path\file.dll' - StrCpy $BANNERTRIMPATH1 'C:\Server\Documents\Terminal\license.htm' - StrCpy $BANNERTRIMPATH2 '34A' - StrCpy $DIRSTATE1 '$TEMP' - - GetDlgItem $1 $HWND 1203 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1" - GetDlgItem $1 $HWND 1205 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2" - InstallOptions::show - Pop $0 -FunctionEnd - -Function LeaveCustom - ReadINIStr $STATE $INI "Field 1" "State" - ReadINIStr $R1 $INI "Field 2" "State" - ReadINIStr $R2 $INI "Field 3" "State" - ReadINIStr $R3 $INI "Field 4" "State" - ReadINIStr $R4 $INI "Field 5" "State" - ReadINIStr $0 $INI "Settings" "State" - StrCmp $0 6 view - StrCmp $0 0 Enter - goto main - - view: - StrCpy $0 '$$' - StrCpy $1 'n' - StrCpy $2 'r' - StrCmp $R4 "LocateCallback" 0 +3 - StrCpy $R0 `Function LocateCallback$\r$\n MessageBox MB_OKCANCEL '$0$$R9 "path\name"=[$$R9]$0\$1$0$$R8 "path" =[$$R8]$0\$1$0$$R7 "name" =[$$R7]$0\$1$0$$R6 "size" =[$$R6]' IDOK +2$\r$\n StrCpy $$R0 StopLocate$\r$\n$\r$\n Push $$R0$\r$\nFunctionEnd` - goto send - StrCmp $R4 "GetDrivesCallback" 0 error - StrCpy $R0 `Function GetDrivesCallback$\r$\n MessageBox MB_OKCANCEL '$0$$9 "drive letter"=[$$9]$0\$1$0$$8 "drive type" =[$$8]' IDOK +2$\r$\n StrCpy $$R0 StopGetDrives$\r$\n StrCpy $$R5 '$$R5$$9 [$$8 Drive]$$\$2$$\$1'$\r$\n$\r$\n Push $$R0$\r$\nFunctionEnd` - goto send - - main: - StrCmp $FUNCTION '' DefaultSend - StrCmp $FUNCTION Locate 0 +4 - StrCpy $LOCATE1 $R2 - StrCpy $LOCATE2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetSize1 0 +4 - StrCpy $GETSIZE1 $R2 - StrCpy $GETSIZE2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetSize2 0 +4 - StrCpy $GETSIZE3 $R2 - StrCpy $GETSIZE4 $R3 - goto DefaultSend - StrCmp $FUNCTION GetSize3 0 +4 - StrCpy $GETSIZE5 $R2 - StrCpy $GETSIZE6 $R3 - goto DefaultSend - StrCmp $FUNCTION DriveSpace 0 +4 - StrCpy $DRIVESPACE1 $R1 - StrCpy $DRIVESPACE2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetDrives 0 +3 - StrCpy $GETDRIVES1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetTime 0 +4 - StrCpy $GETTIME1 $R1 - StrCpy $GETTIME2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetFileAttributes 0 +4 - StrCpy $GETFILEATTRIBUTES1 $R1 - StrCpy $GETFILEATTRIBUTES2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetFileVersion 0 +3 - StrCpy $GETFILEVERSION1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetOptions 0 +4 - StrCpy $GETOPTIONS1 $R1 - StrCpy $GETOPTIONS2 $R3 - goto DefaultSend - StrCmp $FUNCTION GetRoot 0 +3 - StrCpy $GETROOT1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetParent 0 +3 - StrCpy $GETPARENT1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetFileName 0 +3 - StrCpy $GETFILENAME1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetBaseName 0 +3 - StrCpy $GETBASENAME1 $R1 - goto DefaultSend - StrCmp $FUNCTION GetFileExt 0 +3 - StrCpy $GETFILEEXT1 $R1 - goto DefaultSend - StrCmp $FUNCTION BannerTrimPath 0 +4 - StrCpy $BANNERTRIMPATH1 $R1 - StrCpy $BANNERTRIMPATH2 $R3 - goto DefaultSend - StrCmp $FUNCTION DirState 0 +2 - StrCpy $DIRSTATE1 $R2 - - DefaultSend: - GetDlgItem $1 $HWND 1201 - EnableWindow $1 1 - ShowWindow $1 0 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1202 - EnableWindow $1 1 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1203 - EnableWindow $1 1 - ShowWindow $1 0 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1204 - EnableWindow $1 1 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1205 - EnableWindow $1 1 - GetDlgItem $1 $HWND 1206 - ShowWindow $1 0 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1207 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1208 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1211 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - - ReadINIStr $0 $INI "Field 1" "State" - StrCmp $0 " 1. Locate" 0 GetSize1Send - StrCpy $FUNCTION Locate - GetDlgItem $1 $HWND 1203 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1" - GetDlgItem $1 $HWND 1204 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2" - GetDlgItem $1 $HWND 1206 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:LocateCallback" - GetDlgItem $1 $HWND 1207 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Path" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Options" - GetDlgItem $1 $HWND 1211 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Function" - abort - - GetSize1Send: - StrCmp $0 " 2. GetSize (file)" 0 GetSize2Send - StrCpy $FUNCTION 'GetSize1' - GetDlgItem $1 $HWND 1203 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE1" - GetDlgItem $1 $HWND 1204 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE2" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:File" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Options" - Abort - - GetSize2Send: - StrCmp $0 " (directory)" 0 GetSize3Send - StrCpy $FUNCTION 'GetSize2' - GetDlgItem $1 $HWND 1203 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE3" - GetDlgItem $1 $HWND 1204 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE4" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Options" - Abort - - GetSize3Send: - StrCmp $0 " (no size, no subdir)" 0 DriveSpaceSend - StrCpy $FUNCTION 'GetSize3' - GetDlgItem $1 $HWND 1203 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE5" - GetDlgItem $1 $HWND 1204 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE6" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Options" - Abort - - DriveSpaceSend: - StrCmp $0 " 3. DriveSpace" 0 GetDrivesSend - StrCpy $FUNCTION DriveSpace - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE2" - GetDlgItem $1 $HWND 1206 - ShowWindow $1 0 - SendMessage $1 ${WM_SETTEXT} 1 "STR:" - GetDlgItem $1 $HWND 1207 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Drive" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Options" - abort - - GetDrivesSend: - StrCmp $0 " 4. GetDrives (by type)" 0 GetDrives2Send - StrCpy $FUNCTION GetDrives - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETDRIVES1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1206 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback" - GetDlgItem $1 $HWND 1207 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - GetDlgItem $1 $HWND 1211 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Function" - abort - - GetDrives2Send: - StrCmp $0 " (all by letter)" 0 GetTime1Send - StrCpy $FUNCTION '' - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - EnableWindow $1 0 - SendMessage $1 ${WM_ENABLE} 1 0 - SendMessage $1 ${WM_SETTEXT} 1 "STR:ALL" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1206 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback" - GetDlgItem $1 $HWND 1207 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - GetDlgItem $1 $HWND 1211 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Function" - abort - - GetTime1Send: - StrCmp $0 " 5. GetTime (local time)" 0 GetTime2Send - StrCpy $FUNCTION '' - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - EnableWindow $1 0 - SendMessage $1 ${WM_ENABLE} 1 0 - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - EnableWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:L" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - Abort - - GetTime2Send: - StrCmp $0 " (file time)" 0 GetFileAttributesSend - StrCpy $FUNCTION GetTime - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME2" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:File" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - Abort - - GetFileAttributesSend: - StrCmp $0 " 6. GetFileAttributes" 0 GetFileVersionSend - StrCpy $FUNCTION GetFileAttributes - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES2" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Path" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Attrib" - Abort - - GetFileVersionSend: - StrCmp $0 " 7. GetFileVersion" 0 GetCmdSend - StrCpy $FUNCTION GetFileVersion - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEVERSION1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:File" - Abort - - GetCmdSend: - StrCmp $0 " 8. GetExeName" +3 - StrCmp $0 " 9. GetExePath" +2 - StrCmp $0 "10. GetParameters" 0 GetOptionsSend - StrCpy $FUNCTION '' - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - Abort - - GetOptionsSend: - StrCmp $0 "11. GetOptions" 0 GetRootSend - StrCpy $FUNCTION GetOptions - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS2" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Parameters" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - Abort - - GetRootSend: - StrCmp $0 "12. GetRoot" 0 GetParentSend - StrCpy $FUNCTION GetRoot - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETROOT1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:FullPath" - Abort - - GetParentSend: - StrCmp $0 "13. GetParent" 0 GetFileNameSend - StrCpy $FUNCTION GetParent - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETPARENT1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString" - Abort - - GetFileNameSend: - StrCmp $0 "14. GetFileName" 0 GetBaseNameSend - StrCpy $FUNCTION GetFileName - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILENAME1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString" - Abort - - GetBaseNameSend: - StrCmp $0 "15. GetBaseName" 0 GetFileExtSend - StrCpy $FUNCTION GetBaseName - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETBASENAME1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString" - Abort - - GetFileExtSend: - StrCmp $0 "16. GetFileExt" 0 BannerTrimPathSend - StrCpy $FUNCTION GetFileExt - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEEXT1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString" - Abort - - BannerTrimPathSend: - StrCmp $0 "17. BannerTrimPath" 0 DirStateSend - StrCpy $FUNCTION BannerTrimPath - GetDlgItem $1 $HWND 1201 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH1" - GetDlgItem $1 $HWND 1202 - ShowWindow $1 1 - EnableWindow $1 0 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH2" - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString" - GetDlgItem $1 $HWND 1210 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Option" - Abort - - DirStateSend: - StrCmp $0 "18. DirState" 0 RefreshShellIconsSend - StrCpy $FUNCTION DirState - GetDlgItem $1 $HWND 1203 - ShowWindow $1 1 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$DIRSTATE1" - GetDlgItem $1 $HWND 1204 - ShowWindow $1 1 - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - GetDlgItem $1 $HWND 1209 - SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory" - Abort - - RefreshShellIconsSend: - StrCmp $0 "19. RefreshShellIcons" 0 Abort - StrCpy $FUNCTION '' - GetDlgItem $1 $HWND 1205 - ShowWindow $1 0 - - Abort: - Abort - -;=Enter= - Enter: - StrCpy $R0 '' - StrCpy $R5 '' - - StrCmp $STATE " 1. Locate" Locate - StrCmp $STATE " 2. GetSize (file)" GetSize - StrCmp $STATE " (directory)" GetSize - StrCmp $STATE " (no size, no subdir)" GetSize - StrCmp $STATE " 3. DriveSpace" DriveSpace - StrCmp $STATE " 4. GetDrives (by type)" GetDrives - StrCmp $STATE " (all by letter)" GetDrives - StrCmp $STATE " 5. GetTime (local time)" GetTime - StrCmp $STATE " (file time)" GetTime - StrCmp $STATE " 6. GetFileAttributes" GetFileAttributes - StrCmp $STATE " 7. GetFileVersion" GetFileVersion - StrCmp $STATE " 8. GetExeName" GetExeName - StrCmp $STATE " 9. GetExePath" GetExePath - StrCmp $STATE "10. GetParameters" GetParameters - StrCmp $STATE "11. GetOptions" GetOptions - StrCmp $STATE "12. GetRoot" GetRoot - StrCmp $STATE "13. GetParent" GetParent - StrCmp $STATE "14. GetFileName" GetFileName - StrCmp $STATE "15. GetBaseName" GetBaseName - StrCmp $STATE "16. GetFileExt" GetFileExt - StrCmp $STATE "17. BannerTrimPath" BannerTrimPath - StrCmp $STATE "18. DirState" DirState - StrCmp $STATE "19. RefreshShellIcons" RefreshShellIcons - Abort - - Locate: - ${Locate} "$R2" "$R3" "LocateCallback" - IfErrors error - StrCmp $R0 StopLocate 0 +3 - StrCpy $R0 'stopped' - goto send - StrCpy $R0 'done' - goto send - - GetSize: - ${GetSize} "$R2" "$R3" $0 $1 $2 - IfErrors error - StrCpy $R0 "Size=$0$\r$\nFiles=$1$\r$\nFolders=$2" - goto send - - DriveSpace: - ${DriveSpace} "$R1" "$R3" $0 - IfErrors error - StrCpy $R0 "$0" - goto send - - GetDrives: - ${GetDrives} "$R1" "GetDrivesCallback" - StrCmp $R0 StopGetDrives 0 +3 - StrCpy $R0 '$R5stopped' - goto send - StrCpy $R0 '$R5done' - goto send - - GetTime: - ${GetTime} "$R1" "$R3" $0 $1 $2 $3 $4 $5 $6 - IfErrors error - StrCpy $R0 'Date=$0/$1/$2 ($3)$\r$\nTime=$4:$5:$6' - goto send - - GetFileAttributes: - ${GetFileAttributes} "$R1" "$R3" $0 - IfErrors error - StrCpy $R0 '$0' - goto send - - GetFileVersion: - ${GetFileVersion} "$R1" $0 - IfErrors error - StrCpy $R0 '$0' - goto send - - GetExeName: - ${GetExeName} $0 - StrCpy $R0 '$0' - goto send - - GetExePath: - ${GetExePath} $0 - StrCpy $R0 '$0' - goto send - - GetParameters: - ${GetParameters} $0 - StrCpy $R0 '$0' - StrCmp $R0 '' 0 send - StrCpy $R0 'no parameters' - goto send - - GetOptions: - ${GetOptions} "$R1" "$R3" $0 - IfErrors error - StrCpy $R0 '$0' - goto send - - GetRoot: - ${GetRoot} "$R1" $0 - StrCpy $R0 '$0' - goto send - - GetParent: - ${GetParent} "$R1" $0 - StrCpy $R0 '$0' - goto send - - GetFileName: - ${GetFileName} "$R1" $0 - StrCpy $R0 '$0' - goto send - - GetBaseName: - ${GetBaseName} "$R1" $0 - StrCpy $R0 '$0' - goto send - - GetFileExt: - ${GetFileExt} "$R1" $0 - StrCpy $R0 '$0' - goto send - - BannerTrimPath: - ${BannerTrimPath} "$R1" "$R3" $0 - StrCpy $R0 '$0' - goto send - - DirState: - ${DirState} "$R2" $0 - StrCpy $R0 '$0' - goto send - - RefreshShellIcons: - ${RefreshShellIcons} - StrCpy $R0 'done' - goto send - - error: - StrCpy $R0 'error' - - send: - GetDlgItem $1 $HWND 1208 - SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0" - - abort -FunctionEnd - -Function LocateCallback - MessageBox MB_OKCANCEL '$$R9 "path\name"=[$R9]$\n$$R8 "path" =[$R8]$\n$$R7 "name" =[$R7]$\n$$R6 "size" =[$R6]' IDOK +2 - StrCpy $R0 StopLocate - - Push $R0 -FunctionEnd - -Function GetDrivesCallback - MessageBox MB_OKCANCEL '$$9 "drive letter"=[$9]$\n$$8 "drive type" =[$8]' IDOK +2 - StrCpy $R0 StopGetDrives - StrCpy $R5 '$R5$9 [$8 Drive]$\r$\n' - - Push $R0 -FunctionEnd - -Function .onInit - InitPluginsDir - GetTempFileName $INI $PLUGINSDIR - File /oname=$INI "FileFunc.ini" -FunctionEnd - -Page instfiles - -Section "Empty" -SectionEnd +;_____________________________________________________________________________
+;
+; File Functions
+;_____________________________________________________________________________
+;
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+
+Name "File Functions"
+OutFile "FileFunc.exe"
+Caption "$(^Name)"
+XPStyle on
+RequestExecutionLevel user
+
+!include "WinMessages.nsh"
+!include "FileFunc.nsh"
+
+!insertmacro Locate
+!insertmacro GetSize
+!insertmacro DriveSpace
+!insertmacro GetDrives
+!insertmacro GetTime
+!insertmacro GetFileAttributes
+!insertmacro GetFileVersion
+!insertmacro GetExeName
+!insertmacro GetExePath
+!insertmacro GetParameters
+!insertmacro GetOptions
+!insertmacro GetRoot
+!insertmacro GetParent
+!insertmacro GetFileName
+!insertmacro GetBaseName
+!insertmacro GetFileExt
+!insertmacro BannerTrimPath
+!insertmacro DirState
+!insertmacro RefreshShellIcons
+
+Var INI
+Var HWND
+Var STATE
+Var FUNCTION
+Var LOCATE1
+Var LOCATE2
+Var GETSIZE1
+Var GETSIZE2
+Var GETSIZE3
+Var GETSIZE4
+Var GETSIZE5
+Var GETSIZE6
+Var DRIVESPACE1
+Var DRIVESPACE2
+Var GETDRIVES1
+Var GETTIME1
+Var GETTIME2
+Var GETFILEATTRIBUTES1
+Var GETFILEATTRIBUTES2
+Var GETFILEVERSION1
+Var GETOPTIONS1
+Var GETOPTIONS2
+Var GETROOT1
+Var GETPARENT1
+Var GETFILENAME1
+Var GETBASENAME1
+Var GETFILEEXT1
+Var BANNERTRIMPATH1
+Var BANNERTRIMPATH2
+Var DIRSTATE1
+
+Page Custom ShowCustom LeaveCustom
+
+Function ShowCustom
+ InstallOptions::initDialog /NOUNLOAD "$INI"
+ Pop $hwnd
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1206
+ EnableWindow $1 0
+ SendMessage $1 ${WM_ENABLE} 1 0
+ StrCpy $LOCATE1 $DOCUMENTS
+ StrCpy $LOCATE2 '/L=FD /M=*.* /S=0B /G=1 /B=0'
+ StrCpy $GETSIZE1 '$WINDIR'
+ StrCpy $GETSIZE2 '/M=Explorer.exe /S=0K /G=0'
+ StrCpy $GETSIZE3 '$PROGRAMFILES\Common Files'
+ StrCpy $GETSIZE4 '/S=0M'
+ StrCpy $GETSIZE5 '$WINDIR'
+ StrCpy $GETSIZE6 '/G=0'
+ StrCpy $DRIVESPACE1 'C:\'
+ StrCpy $DRIVESPACE2 '/D=F /S=M'
+ StrCpy $GETDRIVES1 'FDD+CDROM'
+ StrCpy $GETTIME1 '$WINDIR\Explorer.exe'
+ StrCpy $GETTIME2 'C'
+ StrCpy $GETFILEATTRIBUTES1 'C:\IO.SYS'
+ StrCpy $GETFILEATTRIBUTES2 'ALL'
+ StrCpy $GETFILEVERSION1 '$WINDIR\Explorer.exe'
+ StrCpy $GETOPTIONS1 '/SILENT=yes /INSTDIR="$PROGRAMFILES\Common Files"'
+ StrCpy $GETOPTIONS2 '/INSTDIR='
+ StrCpy $GETROOT1 'C:\path\file.dll'
+ StrCpy $GETPARENT1 'C:\path\file.dll'
+ StrCpy $GETFILENAME1 'C:\path\file.dll'
+ StrCpy $GETBASENAME1 'C:\path\file.dll'
+ StrCpy $GETFILEEXT1 'C:\path\file.dll'
+ StrCpy $BANNERTRIMPATH1 'C:\Server\Documents\Terminal\license.htm'
+ StrCpy $BANNERTRIMPATH2 '34A'
+ StrCpy $DIRSTATE1 '$TEMP'
+
+ GetDlgItem $1 $HWND 1203
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
+ GetDlgItem $1 $HWND 1205
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
+ InstallOptions::show
+ Pop $0
+FunctionEnd
+
+Function LeaveCustom
+ ReadINIStr $STATE $INI "Field 1" "State"
+ ReadINIStr $R1 $INI "Field 2" "State"
+ ReadINIStr $R2 $INI "Field 3" "State"
+ ReadINIStr $R3 $INI "Field 4" "State"
+ ReadINIStr $R4 $INI "Field 5" "State"
+ ReadINIStr $0 $INI "Settings" "State"
+ StrCmp $0 6 view
+ StrCmp $0 0 Enter
+ goto main
+
+ view:
+ StrCpy $0 '$$'
+ StrCpy $1 'n'
+ StrCpy $2 'r'
+ StrCmp $R4 "LocateCallback" 0 +3
+ StrCpy $R0 `Function LocateCallback$\r$\n MessageBox MB_OKCANCEL '$0$$R9 "path\name"=[$$R9]$0\$1$0$$R8 "path" =[$$R8]$0\$1$0$$R7 "name" =[$$R7]$0\$1$0$$R6 "size" =[$$R6]' IDOK +2$\r$\n StrCpy $$R0 StopLocate$\r$\n$\r$\n Push $$R0$\r$\nFunctionEnd`
+ goto send
+ StrCmp $R4 "GetDrivesCallback" 0 error
+ StrCpy $R0 `Function GetDrivesCallback$\r$\n MessageBox MB_OKCANCEL '$0$$9 "drive letter"=[$$9]$0\$1$0$$8 "drive type" =[$$8]' IDOK +2$\r$\n StrCpy $$R0 StopGetDrives$\r$\n StrCpy $$R5 '$$R5$$9 [$$8 Drive]$$\$2$$\$1'$\r$\n$\r$\n Push $$R0$\r$\nFunctionEnd`
+ goto send
+
+ main:
+ StrCmp $FUNCTION '' DefaultSend
+ StrCmp $FUNCTION Locate 0 +4
+ StrCpy $LOCATE1 $R2
+ StrCpy $LOCATE2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetSize1 0 +4
+ StrCpy $GETSIZE1 $R2
+ StrCpy $GETSIZE2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetSize2 0 +4
+ StrCpy $GETSIZE3 $R2
+ StrCpy $GETSIZE4 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetSize3 0 +4
+ StrCpy $GETSIZE5 $R2
+ StrCpy $GETSIZE6 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION DriveSpace 0 +4
+ StrCpy $DRIVESPACE1 $R1
+ StrCpy $DRIVESPACE2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetDrives 0 +3
+ StrCpy $GETDRIVES1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetTime 0 +4
+ StrCpy $GETTIME1 $R1
+ StrCpy $GETTIME2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetFileAttributes 0 +4
+ StrCpy $GETFILEATTRIBUTES1 $R1
+ StrCpy $GETFILEATTRIBUTES2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetFileVersion 0 +3
+ StrCpy $GETFILEVERSION1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetOptions 0 +4
+ StrCpy $GETOPTIONS1 $R1
+ StrCpy $GETOPTIONS2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION GetRoot 0 +3
+ StrCpy $GETROOT1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetParent 0 +3
+ StrCpy $GETPARENT1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetFileName 0 +3
+ StrCpy $GETFILENAME1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetBaseName 0 +3
+ StrCpy $GETBASENAME1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION GetFileExt 0 +3
+ StrCpy $GETFILEEXT1 $R1
+ goto DefaultSend
+ StrCmp $FUNCTION BannerTrimPath 0 +4
+ StrCpy $BANNERTRIMPATH1 $R1
+ StrCpy $BANNERTRIMPATH2 $R3
+ goto DefaultSend
+ StrCmp $FUNCTION DirState 0 +2
+ StrCpy $DIRSTATE1 $R2
+
+ DefaultSend:
+ GetDlgItem $1 $HWND 1201
+ EnableWindow $1 1
+ ShowWindow $1 0
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1202
+ EnableWindow $1 1
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1203
+ EnableWindow $1 1
+ ShowWindow $1 0
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1204
+ EnableWindow $1 1
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ EnableWindow $1 1
+ GetDlgItem $1 $HWND 1206
+ ShowWindow $1 0
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1207
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1208
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1211
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+
+ ReadINIStr $0 $INI "Field 1" "State"
+ StrCmp $0 " 1. Locate" 0 GetSize1Send
+ StrCpy $FUNCTION Locate
+ GetDlgItem $1 $HWND 1203
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
+ GetDlgItem $1 $HWND 1204
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
+ GetDlgItem $1 $HWND 1206
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:LocateCallback"
+ GetDlgItem $1 $HWND 1207
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
+ GetDlgItem $1 $HWND 1211
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
+ abort
+
+ GetSize1Send:
+ StrCmp $0 " 2. GetSize (file)" 0 GetSize2Send
+ StrCpy $FUNCTION 'GetSize1'
+ GetDlgItem $1 $HWND 1203
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE1"
+ GetDlgItem $1 $HWND 1204
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE2"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
+ Abort
+
+ GetSize2Send:
+ StrCmp $0 " (directory)" 0 GetSize3Send
+ StrCpy $FUNCTION 'GetSize2'
+ GetDlgItem $1 $HWND 1203
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE3"
+ GetDlgItem $1 $HWND 1204
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE4"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
+ Abort
+
+ GetSize3Send:
+ StrCmp $0 " (no size, no subdir)" 0 DriveSpaceSend
+ StrCpy $FUNCTION 'GetSize3'
+ GetDlgItem $1 $HWND 1203
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE5"
+ GetDlgItem $1 $HWND 1204
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE6"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
+ Abort
+
+ DriveSpaceSend:
+ StrCmp $0 " 3. DriveSpace" 0 GetDrivesSend
+ StrCpy $FUNCTION DriveSpace
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE2"
+ GetDlgItem $1 $HWND 1206
+ ShowWindow $1 0
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:"
+ GetDlgItem $1 $HWND 1207
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Drive"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
+ abort
+
+ GetDrivesSend:
+ StrCmp $0 " 4. GetDrives (by type)" 0 GetDrives2Send
+ StrCpy $FUNCTION GetDrives
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETDRIVES1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1206
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
+ GetDlgItem $1 $HWND 1207
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ GetDlgItem $1 $HWND 1211
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
+ abort
+
+ GetDrives2Send:
+ StrCmp $0 " (all by letter)" 0 GetTime1Send
+ StrCpy $FUNCTION ''
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ EnableWindow $1 0
+ SendMessage $1 ${WM_ENABLE} 1 0
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:ALL"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1206
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
+ GetDlgItem $1 $HWND 1207
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ GetDlgItem $1 $HWND 1211
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
+ abort
+
+ GetTime1Send:
+ StrCmp $0 " 5. GetTime (local time)" 0 GetTime2Send
+ StrCpy $FUNCTION ''
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ EnableWindow $1 0
+ SendMessage $1 ${WM_ENABLE} 1 0
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ EnableWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:L"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ Abort
+
+ GetTime2Send:
+ StrCmp $0 " (file time)" 0 GetFileAttributesSend
+ StrCpy $FUNCTION GetTime
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME2"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ Abort
+
+ GetFileAttributesSend:
+ StrCmp $0 " 6. GetFileAttributes" 0 GetFileVersionSend
+ StrCpy $FUNCTION GetFileAttributes
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES2"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Attrib"
+ Abort
+
+ GetFileVersionSend:
+ StrCmp $0 " 7. GetFileVersion" 0 GetCmdSend
+ StrCpy $FUNCTION GetFileVersion
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEVERSION1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
+ Abort
+
+ GetCmdSend:
+ StrCmp $0 " 8. GetExeName" +3
+ StrCmp $0 " 9. GetExePath" +2
+ StrCmp $0 "10. GetParameters" 0 GetOptionsSend
+ StrCpy $FUNCTION ''
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ Abort
+
+ GetOptionsSend:
+ StrCmp $0 "11. GetOptions" 0 GetRootSend
+ StrCpy $FUNCTION GetOptions
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS2"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Parameters"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ Abort
+
+ GetRootSend:
+ StrCmp $0 "12. GetRoot" 0 GetParentSend
+ StrCpy $FUNCTION GetRoot
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETROOT1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:FullPath"
+ Abort
+
+ GetParentSend:
+ StrCmp $0 "13. GetParent" 0 GetFileNameSend
+ StrCpy $FUNCTION GetParent
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETPARENT1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
+ Abort
+
+ GetFileNameSend:
+ StrCmp $0 "14. GetFileName" 0 GetBaseNameSend
+ StrCpy $FUNCTION GetFileName
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILENAME1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
+ Abort
+
+ GetBaseNameSend:
+ StrCmp $0 "15. GetBaseName" 0 GetFileExtSend
+ StrCpy $FUNCTION GetBaseName
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETBASENAME1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
+ Abort
+
+ GetFileExtSend:
+ StrCmp $0 "16. GetFileExt" 0 BannerTrimPathSend
+ StrCpy $FUNCTION GetFileExt
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEEXT1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
+ Abort
+
+ BannerTrimPathSend:
+ StrCmp $0 "17. BannerTrimPath" 0 DirStateSend
+ StrCpy $FUNCTION BannerTrimPath
+ GetDlgItem $1 $HWND 1201
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH1"
+ GetDlgItem $1 $HWND 1202
+ ShowWindow $1 1
+ EnableWindow $1 0
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH2"
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
+ GetDlgItem $1 $HWND 1210
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
+ Abort
+
+ DirStateSend:
+ StrCmp $0 "18. DirState" 0 RefreshShellIconsSend
+ StrCpy $FUNCTION DirState
+ GetDlgItem $1 $HWND 1203
+ ShowWindow $1 1
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$DIRSTATE1"
+ GetDlgItem $1 $HWND 1204
+ ShowWindow $1 1
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+ GetDlgItem $1 $HWND 1209
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
+ Abort
+
+ RefreshShellIconsSend:
+ StrCmp $0 "19. RefreshShellIcons" 0 Abort
+ StrCpy $FUNCTION ''
+ GetDlgItem $1 $HWND 1205
+ ShowWindow $1 0
+
+ Abort:
+ Abort
+
+;=Enter=
+ Enter:
+ StrCpy $R0 ''
+ StrCpy $R5 ''
+
+ StrCmp $STATE " 1. Locate" Locate
+ StrCmp $STATE " 2. GetSize (file)" GetSize
+ StrCmp $STATE " (directory)" GetSize
+ StrCmp $STATE " (no size, no subdir)" GetSize
+ StrCmp $STATE " 3. DriveSpace" DriveSpace
+ StrCmp $STATE " 4. GetDrives (by type)" GetDrives
+ StrCmp $STATE " (all by letter)" GetDrives
+ StrCmp $STATE " 5. GetTime (local time)" GetTime
+ StrCmp $STATE " (file time)" GetTime
+ StrCmp $STATE " 6. GetFileAttributes" GetFileAttributes
+ StrCmp $STATE " 7. GetFileVersion" GetFileVersion
+ StrCmp $STATE " 8. GetExeName" GetExeName
+ StrCmp $STATE " 9. GetExePath" GetExePath
+ StrCmp $STATE "10. GetParameters" GetParameters
+ StrCmp $STATE "11. GetOptions" GetOptions
+ StrCmp $STATE "12. GetRoot" GetRoot
+ StrCmp $STATE "13. GetParent" GetParent
+ StrCmp $STATE "14. GetFileName" GetFileName
+ StrCmp $STATE "15. GetBaseName" GetBaseName
+ StrCmp $STATE "16. GetFileExt" GetFileExt
+ StrCmp $STATE "17. BannerTrimPath" BannerTrimPath
+ StrCmp $STATE "18. DirState" DirState
+ StrCmp $STATE "19. RefreshShellIcons" RefreshShellIcons
+ Abort
+
+ Locate:
+ ${Locate} "$R2" "$R3" "LocateCallback"
+ IfErrors error
+ StrCmp $R0 StopLocate 0 +3
+ StrCpy $R0 'stopped'
+ goto send
+ StrCpy $R0 'done'
+ goto send
+
+ GetSize:
+ ${GetSize} "$R2" "$R3" $0 $1 $2
+ IfErrors error
+ StrCpy $R0 "Size=$0$\r$\nFiles=$1$\r$\nFolders=$2"
+ goto send
+
+ DriveSpace:
+ ${DriveSpace} "$R1" "$R3" $0
+ IfErrors error
+ StrCpy $R0 "$0"
+ goto send
+
+ GetDrives:
+ ${GetDrives} "$R1" "GetDrivesCallback"
+ StrCmp $R0 StopGetDrives 0 +3
+ StrCpy $R0 '$R5stopped'
+ goto send
+ StrCpy $R0 '$R5done'
+ goto send
+
+ GetTime:
+ ${GetTime} "$R1" "$R3" $0 $1 $2 $3 $4 $5 $6
+ IfErrors error
+ StrCpy $R0 'Date=$0/$1/$2 ($3)$\r$\nTime=$4:$5:$6'
+ goto send
+
+ GetFileAttributes:
+ ${GetFileAttributes} "$R1" "$R3" $0
+ IfErrors error
+ StrCpy $R0 '$0'
+ goto send
+
+ GetFileVersion:
+ ${GetFileVersion} "$R1" $0
+ IfErrors error
+ StrCpy $R0 '$0'
+ goto send
+
+ GetExeName:
+ ${GetExeName} $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetExePath:
+ ${GetExePath} $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetParameters:
+ ${GetParameters} $0
+ StrCpy $R0 '$0'
+ StrCmp $R0 '' 0 send
+ StrCpy $R0 'no parameters'
+ goto send
+
+ GetOptions:
+ ${GetOptions} "$R1" "$R3" $0
+ IfErrors error
+ StrCpy $R0 '$0'
+ goto send
+
+ GetRoot:
+ ${GetRoot} "$R1" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetParent:
+ ${GetParent} "$R1" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetFileName:
+ ${GetFileName} "$R1" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetBaseName:
+ ${GetBaseName} "$R1" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ GetFileExt:
+ ${GetFileExt} "$R1" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ BannerTrimPath:
+ ${BannerTrimPath} "$R1" "$R3" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ DirState:
+ ${DirState} "$R2" $0
+ StrCpy $R0 '$0'
+ goto send
+
+ RefreshShellIcons:
+ ${RefreshShellIcons}
+ StrCpy $R0 'done'
+ goto send
+
+ error:
+ StrCpy $R0 'error'
+
+ send:
+ GetDlgItem $1 $HWND 1208
+ SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0"
+
+ abort
+FunctionEnd
+
+Function LocateCallback
+ MessageBox MB_OKCANCEL '$$R9 "path\name"=[$R9]$\n$$R8 "path" =[$R8]$\n$$R7 "name" =[$R7]$\n$$R6 "size" =[$R6]' IDOK +2
+ StrCpy $R0 StopLocate
+
+ Push $R0
+FunctionEnd
+
+Function GetDrivesCallback
+ MessageBox MB_OKCANCEL '$$9 "drive letter"=[$9]$\n$$8 "drive type" =[$8]' IDOK +2
+ StrCpy $R0 StopGetDrives
+ StrCpy $R5 '$R5$9 [$8 Drive]$\r$\n'
+
+ Push $R0
+FunctionEnd
+
+Function .onInit
+ InitPluginsDir
+ GetTempFileName $INI $PLUGINSDIR
+ File /oname=$INI "FileFunc.ini"
+FunctionEnd
+
+Page instfiles
+
+Section "Empty"
+SectionEnd
|