FileFunc.nsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732
  1. ;_____________________________________________________________________________
  2. ;
  3. ; File Functions
  4. ;_____________________________________________________________________________
  5. ;
  6. ; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
  7. Name "File Functions"
  8. OutFile "FileFunc.exe"
  9. Caption "$(^Name)"
  10. XPStyle on
  11. RequestExecutionLevel user
  12. !include "WinMessages.nsh"
  13. !include "FileFunc.nsh"
  14. Var INI
  15. Var HWND
  16. Var STATE
  17. Var FUNCTION
  18. Var LOCATE1
  19. Var LOCATE2
  20. Var GETSIZE1
  21. Var GETSIZE2
  22. Var GETSIZE3
  23. Var GETSIZE4
  24. Var GETSIZE5
  25. Var GETSIZE6
  26. Var DRIVESPACE1
  27. Var DRIVESPACE2
  28. Var GETDRIVES1
  29. Var GETTIME1
  30. Var GETTIME2
  31. Var GETFILEATTRIBUTES1
  32. Var GETFILEATTRIBUTES2
  33. Var GETFILEVERSION1
  34. Var GETOPTIONS1
  35. Var GETOPTIONS2
  36. Var GETROOT1
  37. Var GETPARENT1
  38. Var GETFILENAME1
  39. Var GETBASENAME1
  40. Var GETFILEEXT1
  41. Var BANNERTRIMPATH1
  42. Var BANNERTRIMPATH2
  43. Var DIRSTATE1
  44. Page Custom ShowCustom LeaveCustom
  45. Function ShowCustom
  46. InstallOptions::initDialog "$INI"
  47. Pop $hwnd
  48. GetDlgItem $1 $HWND 1201
  49. ShowWindow $1 0
  50. GetDlgItem $1 $HWND 1202
  51. ShowWindow $1 0
  52. GetDlgItem $1 $HWND 1206
  53. EnableWindow $1 0
  54. SendMessage $1 ${WM_ENABLE} 1 0
  55. StrCpy $LOCATE1 $DOCUMENTS
  56. StrCpy $LOCATE2 '/L=FD /M=*.* /S=0B /G=1 /B=0'
  57. StrCpy $GETSIZE1 '$WINDIR'
  58. StrCpy $GETSIZE2 '/M=Explorer.exe /S=0K /G=0'
  59. StrCpy $GETSIZE3 '$PROGRAMFILES\Common Files'
  60. StrCpy $GETSIZE4 '/S=0M'
  61. StrCpy $GETSIZE5 '$WINDIR'
  62. StrCpy $GETSIZE6 '/G=0'
  63. StrCpy $DRIVESPACE1 'C:\'
  64. StrCpy $DRIVESPACE2 '/D=F /S=M'
  65. StrCpy $GETDRIVES1 'FDD+CDROM'
  66. StrCpy $GETTIME1 '$WINDIR\Explorer.exe'
  67. StrCpy $GETTIME2 'C'
  68. StrCpy $GETFILEATTRIBUTES1 'C:\IO.SYS'
  69. StrCpy $GETFILEATTRIBUTES2 'ALL'
  70. StrCpy $GETFILEVERSION1 '$WINDIR\Explorer.exe'
  71. StrCpy $GETOPTIONS1 '/SILENT=yes /INSTDIR="$PROGRAMFILES\Common Files"'
  72. StrCpy $GETOPTIONS2 '/INSTDIR='
  73. StrCpy $GETROOT1 'C:\path\file.dll'
  74. StrCpy $GETPARENT1 'C:\path\file.dll'
  75. StrCpy $GETFILENAME1 'C:\path\file.dll'
  76. StrCpy $GETBASENAME1 'C:\path\file.dll'
  77. StrCpy $GETFILEEXT1 'C:\path\file.dll'
  78. StrCpy $BANNERTRIMPATH1 'C:\Server\Documents\Terminal\license.htm'
  79. StrCpy $BANNERTRIMPATH2 '34A'
  80. StrCpy $DIRSTATE1 '$TEMP'
  81. GetDlgItem $1 $HWND 1203
  82. SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
  83. GetDlgItem $1 $HWND 1205
  84. SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
  85. InstallOptions::show
  86. Pop $0
  87. FunctionEnd
  88. Function LeaveCustom
  89. ReadINIStr $STATE $INI "Field 1" "State"
  90. ReadINIStr $R1 $INI "Field 2" "State"
  91. ReadINIStr $R2 $INI "Field 3" "State"
  92. ReadINIStr $R3 $INI "Field 4" "State"
  93. ReadINIStr $R4 $INI "Field 5" "State"
  94. ReadINIStr $0 $INI "Settings" "State"
  95. StrCmp $0 6 view
  96. StrCmp $0 0 Enter
  97. goto main
  98. view:
  99. StrCpy $0 '$$'
  100. StrCpy $1 'n'
  101. StrCpy $2 'r'
  102. StrCmp $R4 "LocateCallback" 0 +3
  103. 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`
  104. goto send
  105. StrCmp $R4 "GetDrivesCallback" 0 error
  106. 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`
  107. goto send
  108. main:
  109. StrCmp $FUNCTION '' DefaultSend
  110. StrCmp $FUNCTION Locate 0 +4
  111. StrCpy $LOCATE1 $R2
  112. StrCpy $LOCATE2 $R3
  113. goto DefaultSend
  114. StrCmp $FUNCTION GetSize1 0 +4
  115. StrCpy $GETSIZE1 $R2
  116. StrCpy $GETSIZE2 $R3
  117. goto DefaultSend
  118. StrCmp $FUNCTION GetSize2 0 +4
  119. StrCpy $GETSIZE3 $R2
  120. StrCpy $GETSIZE4 $R3
  121. goto DefaultSend
  122. StrCmp $FUNCTION GetSize3 0 +4
  123. StrCpy $GETSIZE5 $R2
  124. StrCpy $GETSIZE6 $R3
  125. goto DefaultSend
  126. StrCmp $FUNCTION DriveSpace 0 +4
  127. StrCpy $DRIVESPACE1 $R1
  128. StrCpy $DRIVESPACE2 $R3
  129. goto DefaultSend
  130. StrCmp $FUNCTION GetDrives 0 +3
  131. StrCpy $GETDRIVES1 $R1
  132. goto DefaultSend
  133. StrCmp $FUNCTION GetTime 0 +4
  134. StrCpy $GETTIME1 $R1
  135. StrCpy $GETTIME2 $R3
  136. goto DefaultSend
  137. StrCmp $FUNCTION GetFileAttributes 0 +4
  138. StrCpy $GETFILEATTRIBUTES1 $R1
  139. StrCpy $GETFILEATTRIBUTES2 $R3
  140. goto DefaultSend
  141. StrCmp $FUNCTION GetFileVersion 0 +3
  142. StrCpy $GETFILEVERSION1 $R1
  143. goto DefaultSend
  144. StrCmp $FUNCTION GetOptions 0 +4
  145. StrCpy $GETOPTIONS1 $R1
  146. StrCpy $GETOPTIONS2 $R3
  147. goto DefaultSend
  148. StrCmp $FUNCTION GetRoot 0 +3
  149. StrCpy $GETROOT1 $R1
  150. goto DefaultSend
  151. StrCmp $FUNCTION GetParent 0 +3
  152. StrCpy $GETPARENT1 $R1
  153. goto DefaultSend
  154. StrCmp $FUNCTION GetFileName 0 +3
  155. StrCpy $GETFILENAME1 $R1
  156. goto DefaultSend
  157. StrCmp $FUNCTION GetBaseName 0 +3
  158. StrCpy $GETBASENAME1 $R1
  159. goto DefaultSend
  160. StrCmp $FUNCTION GetFileExt 0 +3
  161. StrCpy $GETFILEEXT1 $R1
  162. goto DefaultSend
  163. StrCmp $FUNCTION BannerTrimPath 0 +4
  164. StrCpy $BANNERTRIMPATH1 $R1
  165. StrCpy $BANNERTRIMPATH2 $R3
  166. goto DefaultSend
  167. StrCmp $FUNCTION DirState 0 +2
  168. StrCpy $DIRSTATE1 $R2
  169. DefaultSend:
  170. GetDlgItem $1 $HWND 1201
  171. EnableWindow $1 1
  172. ShowWindow $1 0
  173. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  174. GetDlgItem $1 $HWND 1202
  175. EnableWindow $1 1
  176. ShowWindow $1 0
  177. GetDlgItem $1 $HWND 1203
  178. EnableWindow $1 1
  179. ShowWindow $1 0
  180. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  181. GetDlgItem $1 $HWND 1204
  182. EnableWindow $1 1
  183. ShowWindow $1 0
  184. GetDlgItem $1 $HWND 1205
  185. EnableWindow $1 1
  186. GetDlgItem $1 $HWND 1206
  187. ShowWindow $1 0
  188. EnableWindow $1 0
  189. GetDlgItem $1 $HWND 1207
  190. ShowWindow $1 0
  191. GetDlgItem $1 $HWND 1208
  192. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  193. GetDlgItem $1 $HWND 1209
  194. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  195. GetDlgItem $1 $HWND 1210
  196. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  197. GetDlgItem $1 $HWND 1211
  198. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  199. ReadINIStr $0 $INI "Field 1" "State"
  200. StrCmp $0 " 1. Locate" 0 GetSize1Send
  201. StrCpy $FUNCTION Locate
  202. GetDlgItem $1 $HWND 1203
  203. ShowWindow $1 1
  204. SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
  205. GetDlgItem $1 $HWND 1204
  206. ShowWindow $1 1
  207. GetDlgItem $1 $HWND 1205
  208. ShowWindow $1 1
  209. SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
  210. GetDlgItem $1 $HWND 1206
  211. ShowWindow $1 1
  212. SendMessage $1 ${WM_SETTEXT} 1 "STR:LocateCallback"
  213. GetDlgItem $1 $HWND 1207
  214. ShowWindow $1 1
  215. GetDlgItem $1 $HWND 1209
  216. SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
  217. GetDlgItem $1 $HWND 1210
  218. SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
  219. GetDlgItem $1 $HWND 1211
  220. SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
  221. abort
  222. GetSize1Send:
  223. StrCmp $0 " 2. GetSize (file)" 0 GetSize2Send
  224. StrCpy $FUNCTION 'GetSize1'
  225. GetDlgItem $1 $HWND 1203
  226. ShowWindow $1 1
  227. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE1"
  228. GetDlgItem $1 $HWND 1204
  229. ShowWindow $1 1
  230. GetDlgItem $1 $HWND 1205
  231. ShowWindow $1 1
  232. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE2"
  233. GetDlgItem $1 $HWND 1209
  234. SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
  235. GetDlgItem $1 $HWND 1210
  236. SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
  237. Abort
  238. GetSize2Send:
  239. StrCmp $0 " (directory)" 0 GetSize3Send
  240. StrCpy $FUNCTION 'GetSize2'
  241. GetDlgItem $1 $HWND 1203
  242. ShowWindow $1 1
  243. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE3"
  244. GetDlgItem $1 $HWND 1204
  245. ShowWindow $1 1
  246. GetDlgItem $1 $HWND 1205
  247. ShowWindow $1 1
  248. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE4"
  249. GetDlgItem $1 $HWND 1209
  250. SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
  251. GetDlgItem $1 $HWND 1210
  252. SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
  253. Abort
  254. GetSize3Send:
  255. StrCmp $0 " (no size, no subdir)" 0 DriveSpaceSend
  256. StrCpy $FUNCTION 'GetSize3'
  257. GetDlgItem $1 $HWND 1203
  258. ShowWindow $1 1
  259. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE5"
  260. GetDlgItem $1 $HWND 1204
  261. ShowWindow $1 1
  262. GetDlgItem $1 $HWND 1205
  263. ShowWindow $1 1
  264. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE6"
  265. GetDlgItem $1 $HWND 1209
  266. SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
  267. GetDlgItem $1 $HWND 1210
  268. SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
  269. Abort
  270. DriveSpaceSend:
  271. StrCmp $0 " 3. DriveSpace" 0 GetDrivesSend
  272. StrCpy $FUNCTION DriveSpace
  273. GetDlgItem $1 $HWND 1201
  274. ShowWindow $1 1
  275. SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE1"
  276. GetDlgItem $1 $HWND 1202
  277. ShowWindow $1 1
  278. EnableWindow $1 0
  279. GetDlgItem $1 $HWND 1205
  280. ShowWindow $1 1
  281. SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE2"
  282. GetDlgItem $1 $HWND 1206
  283. ShowWindow $1 0
  284. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  285. GetDlgItem $1 $HWND 1207
  286. ShowWindow $1 0
  287. GetDlgItem $1 $HWND 1209
  288. SendMessage $1 ${WM_SETTEXT} 1 "STR:Drive"
  289. GetDlgItem $1 $HWND 1210
  290. SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
  291. abort
  292. GetDrivesSend:
  293. StrCmp $0 " 4. GetDrives (by type)" 0 GetDrives2Send
  294. StrCpy $FUNCTION GetDrives
  295. GetDlgItem $1 $HWND 1201
  296. ShowWindow $1 1
  297. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETDRIVES1"
  298. GetDlgItem $1 $HWND 1202
  299. ShowWindow $1 1
  300. EnableWindow $1 0
  301. GetDlgItem $1 $HWND 1205
  302. ShowWindow $1 0
  303. GetDlgItem $1 $HWND 1206
  304. ShowWindow $1 1
  305. SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
  306. GetDlgItem $1 $HWND 1207
  307. ShowWindow $1 1
  308. GetDlgItem $1 $HWND 1209
  309. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  310. GetDlgItem $1 $HWND 1211
  311. SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
  312. abort
  313. GetDrives2Send:
  314. StrCmp $0 " (all by letter)" 0 GetTime1Send
  315. StrCpy $FUNCTION ''
  316. GetDlgItem $1 $HWND 1201
  317. ShowWindow $1 1
  318. EnableWindow $1 0
  319. SendMessage $1 ${WM_ENABLE} 1 0
  320. SendMessage $1 ${WM_SETTEXT} 1 "STR:ALL"
  321. GetDlgItem $1 $HWND 1202
  322. ShowWindow $1 1
  323. EnableWindow $1 0
  324. GetDlgItem $1 $HWND 1205
  325. ShowWindow $1 0
  326. GetDlgItem $1 $HWND 1206
  327. ShowWindow $1 1
  328. SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
  329. GetDlgItem $1 $HWND 1207
  330. ShowWindow $1 1
  331. GetDlgItem $1 $HWND 1209
  332. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  333. GetDlgItem $1 $HWND 1211
  334. SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
  335. abort
  336. GetTime1Send:
  337. StrCmp $0 " 5. GetTime (local time)" 0 GetTime2Send
  338. StrCpy $FUNCTION ''
  339. GetDlgItem $1 $HWND 1201
  340. ShowWindow $1 1
  341. EnableWindow $1 0
  342. SendMessage $1 ${WM_ENABLE} 1 0
  343. GetDlgItem $1 $HWND 1202
  344. ShowWindow $1 1
  345. EnableWindow $1 0
  346. GetDlgItem $1 $HWND 1205
  347. ShowWindow $1 1
  348. EnableWindow $1 1
  349. SendMessage $1 ${WM_SETTEXT} 1 "STR:L"
  350. GetDlgItem $1 $HWND 1210
  351. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  352. Abort
  353. GetTime2Send:
  354. StrCmp $0 " (file time)" 0 GetFileAttributesSend
  355. StrCpy $FUNCTION GetTime
  356. GetDlgItem $1 $HWND 1201
  357. ShowWindow $1 1
  358. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME1"
  359. GetDlgItem $1 $HWND 1202
  360. ShowWindow $1 1
  361. GetDlgItem $1 $HWND 1205
  362. ShowWindow $1 1
  363. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME2"
  364. GetDlgItem $1 $HWND 1209
  365. SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
  366. GetDlgItem $1 $HWND 1210
  367. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  368. Abort
  369. GetFileAttributesSend:
  370. StrCmp $0 " 6. GetFileAttributes" 0 GetFileVersionSend
  371. StrCpy $FUNCTION GetFileAttributes
  372. GetDlgItem $1 $HWND 1201
  373. ShowWindow $1 1
  374. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES1"
  375. GetDlgItem $1 $HWND 1202
  376. ShowWindow $1 1
  377. GetDlgItem $1 $HWND 1205
  378. ShowWindow $1 1
  379. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES2"
  380. GetDlgItem $1 $HWND 1209
  381. SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
  382. GetDlgItem $1 $HWND 1210
  383. SendMessage $1 ${WM_SETTEXT} 1 "STR:Attrib"
  384. Abort
  385. GetFileVersionSend:
  386. StrCmp $0 " 7. GetFileVersion" 0 GetCmdSend
  387. StrCpy $FUNCTION GetFileVersion
  388. GetDlgItem $1 $HWND 1201
  389. ShowWindow $1 1
  390. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEVERSION1"
  391. GetDlgItem $1 $HWND 1202
  392. ShowWindow $1 1
  393. GetDlgItem $1 $HWND 1205
  394. ShowWindow $1 0
  395. GetDlgItem $1 $HWND 1209
  396. SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
  397. Abort
  398. GetCmdSend:
  399. StrCmp $0 " 8. GetExeName" +3
  400. StrCmp $0 " 9. GetExePath" +2
  401. StrCmp $0 "10. GetParameters" 0 GetOptionsSend
  402. StrCpy $FUNCTION ''
  403. GetDlgItem $1 $HWND 1205
  404. ShowWindow $1 0
  405. Abort
  406. GetOptionsSend:
  407. StrCmp $0 "11. GetOptions" 0 GetRootSend
  408. StrCpy $FUNCTION GetOptions
  409. GetDlgItem $1 $HWND 1201
  410. ShowWindow $1 1
  411. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS1"
  412. GetDlgItem $1 $HWND 1202
  413. ShowWindow $1 1
  414. EnableWindow $1 0
  415. GetDlgItem $1 $HWND 1205
  416. ShowWindow $1 1
  417. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS2"
  418. GetDlgItem $1 $HWND 1209
  419. SendMessage $1 ${WM_SETTEXT} 1 "STR:Parameters"
  420. GetDlgItem $1 $HWND 1210
  421. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  422. Abort
  423. GetRootSend:
  424. StrCmp $0 "12. GetRoot" 0 GetParentSend
  425. StrCpy $FUNCTION GetRoot
  426. GetDlgItem $1 $HWND 1201
  427. ShowWindow $1 1
  428. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETROOT1"
  429. GetDlgItem $1 $HWND 1202
  430. ShowWindow $1 1
  431. GetDlgItem $1 $HWND 1205
  432. ShowWindow $1 0
  433. GetDlgItem $1 $HWND 1209
  434. SendMessage $1 ${WM_SETTEXT} 1 "STR:FullPath"
  435. Abort
  436. GetParentSend:
  437. StrCmp $0 "13. GetParent" 0 GetFileNameSend
  438. StrCpy $FUNCTION GetParent
  439. GetDlgItem $1 $HWND 1201
  440. ShowWindow $1 1
  441. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETPARENT1"
  442. GetDlgItem $1 $HWND 1202
  443. ShowWindow $1 1
  444. GetDlgItem $1 $HWND 1205
  445. ShowWindow $1 0
  446. GetDlgItem $1 $HWND 1209
  447. SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
  448. Abort
  449. GetFileNameSend:
  450. StrCmp $0 "14. GetFileName" 0 GetBaseNameSend
  451. StrCpy $FUNCTION GetFileName
  452. GetDlgItem $1 $HWND 1201
  453. ShowWindow $1 1
  454. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILENAME1"
  455. GetDlgItem $1 $HWND 1202
  456. ShowWindow $1 1
  457. GetDlgItem $1 $HWND 1205
  458. ShowWindow $1 0
  459. GetDlgItem $1 $HWND 1209
  460. SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
  461. Abort
  462. GetBaseNameSend:
  463. StrCmp $0 "15. GetBaseName" 0 GetFileExtSend
  464. StrCpy $FUNCTION GetBaseName
  465. GetDlgItem $1 $HWND 1201
  466. ShowWindow $1 1
  467. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETBASENAME1"
  468. GetDlgItem $1 $HWND 1202
  469. ShowWindow $1 1
  470. GetDlgItem $1 $HWND 1205
  471. ShowWindow $1 0
  472. GetDlgItem $1 $HWND 1209
  473. SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
  474. Abort
  475. GetFileExtSend:
  476. StrCmp $0 "16. GetFileExt" 0 BannerTrimPathSend
  477. StrCpy $FUNCTION GetFileExt
  478. GetDlgItem $1 $HWND 1201
  479. ShowWindow $1 1
  480. SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEEXT1"
  481. GetDlgItem $1 $HWND 1202
  482. ShowWindow $1 1
  483. GetDlgItem $1 $HWND 1205
  484. ShowWindow $1 0
  485. GetDlgItem $1 $HWND 1209
  486. SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
  487. Abort
  488. BannerTrimPathSend:
  489. StrCmp $0 "17. BannerTrimPath" 0 DirStateSend
  490. StrCpy $FUNCTION BannerTrimPath
  491. GetDlgItem $1 $HWND 1201
  492. ShowWindow $1 1
  493. SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH1"
  494. GetDlgItem $1 $HWND 1202
  495. ShowWindow $1 1
  496. EnableWindow $1 0
  497. GetDlgItem $1 $HWND 1205
  498. ShowWindow $1 1
  499. SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH2"
  500. GetDlgItem $1 $HWND 1209
  501. SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
  502. GetDlgItem $1 $HWND 1210
  503. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  504. Abort
  505. DirStateSend:
  506. StrCmp $0 "18. DirState" 0 RefreshShellIconsSend
  507. StrCpy $FUNCTION DirState
  508. GetDlgItem $1 $HWND 1203
  509. ShowWindow $1 1
  510. SendMessage $1 ${WM_SETTEXT} 1 "STR:$DIRSTATE1"
  511. GetDlgItem $1 $HWND 1204
  512. ShowWindow $1 1
  513. GetDlgItem $1 $HWND 1205
  514. ShowWindow $1 0
  515. GetDlgItem $1 $HWND 1209
  516. SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
  517. Abort
  518. RefreshShellIconsSend:
  519. StrCmp $0 "19. RefreshShellIcons" 0 Abort
  520. StrCpy $FUNCTION ''
  521. GetDlgItem $1 $HWND 1205
  522. ShowWindow $1 0
  523. Abort:
  524. Abort
  525. ;=Enter=
  526. Enter:
  527. StrCpy $R0 ''
  528. StrCpy $R5 ''
  529. StrCmp $STATE " 1. Locate" Locate
  530. StrCmp $STATE " 2. GetSize (file)" GetSize
  531. StrCmp $STATE " (directory)" GetSize
  532. StrCmp $STATE " (no size, no subdir)" GetSize
  533. StrCmp $STATE " 3. DriveSpace" DriveSpace
  534. StrCmp $STATE " 4. GetDrives (by type)" GetDrives
  535. StrCmp $STATE " (all by letter)" GetDrives
  536. StrCmp $STATE " 5. GetTime (local time)" GetTime
  537. StrCmp $STATE " (file time)" GetTime
  538. StrCmp $STATE " 6. GetFileAttributes" GetFileAttributes
  539. StrCmp $STATE " 7. GetFileVersion" GetFileVersion
  540. StrCmp $STATE " 8. GetExeName" GetExeName
  541. StrCmp $STATE " 9. GetExePath" GetExePath
  542. StrCmp $STATE "10. GetParameters" GetParameters
  543. StrCmp $STATE "11. GetOptions" GetOptions
  544. StrCmp $STATE "12. GetRoot" GetRoot
  545. StrCmp $STATE "13. GetParent" GetParent
  546. StrCmp $STATE "14. GetFileName" GetFileName
  547. StrCmp $STATE "15. GetBaseName" GetBaseName
  548. StrCmp $STATE "16. GetFileExt" GetFileExt
  549. StrCmp $STATE "17. BannerTrimPath" BannerTrimPath
  550. StrCmp $STATE "18. DirState" DirState
  551. StrCmp $STATE "19. RefreshShellIcons" RefreshShellIcons
  552. Abort
  553. Locate:
  554. ${Locate} "$R2" "$R3" "LocateCallback"
  555. IfErrors error
  556. StrCmp $R0 StopLocate 0 +3
  557. StrCpy $R0 'stopped'
  558. goto send
  559. StrCpy $R0 'done'
  560. goto send
  561. GetSize:
  562. ${GetSize} "$R2" "$R3" $0 $1 $2
  563. IfErrors error
  564. StrCpy $R0 "Size=$0$\r$\nFiles=$1$\r$\nFolders=$2"
  565. goto send
  566. DriveSpace:
  567. ${DriveSpace} "$R1" "$R3" $0
  568. IfErrors error
  569. StrCpy $R0 "$0"
  570. goto send
  571. GetDrives:
  572. ${GetDrives} "$R1" "GetDrivesCallback"
  573. StrCmp $R0 StopGetDrives 0 +3
  574. StrCpy $R0 '$R5stopped'
  575. goto send
  576. StrCpy $R0 '$R5done'
  577. goto send
  578. GetTime:
  579. ${GetTime} "$R1" "$R3" $0 $1 $2 $3 $4 $5 $6
  580. IfErrors error
  581. StrCpy $R0 'Date=$0/$1/$2 ($3)$\r$\nTime=$4:$5:$6'
  582. goto send
  583. GetFileAttributes:
  584. ${GetFileAttributes} "$R1" "$R3" $0
  585. IfErrors error
  586. StrCpy $R0 '$0'
  587. goto send
  588. GetFileVersion:
  589. ${GetFileVersion} "$R1" $0
  590. IfErrors error
  591. StrCpy $R0 '$0'
  592. goto send
  593. GetExeName:
  594. ${GetExeName} $0
  595. StrCpy $R0 '$0'
  596. goto send
  597. GetExePath:
  598. ${GetExePath} $0
  599. StrCpy $R0 '$0'
  600. goto send
  601. GetParameters:
  602. ${GetParameters} $0
  603. StrCpy $R0 '$0'
  604. StrCmp $R0 '' 0 send
  605. StrCpy $R0 'no parameters'
  606. goto send
  607. GetOptions:
  608. ${GetOptions} "$R1" "$R3" $0
  609. IfErrors error
  610. StrCpy $R0 '$0'
  611. goto send
  612. GetRoot:
  613. ${GetRoot} "$R1" $0
  614. StrCpy $R0 '$0'
  615. goto send
  616. GetParent:
  617. ${GetParent} "$R1" $0
  618. StrCpy $R0 '$0'
  619. goto send
  620. GetFileName:
  621. ${GetFileName} "$R1" $0
  622. StrCpy $R0 '$0'
  623. goto send
  624. GetBaseName:
  625. ${GetBaseName} "$R1" $0
  626. StrCpy $R0 '$0'
  627. goto send
  628. GetFileExt:
  629. ${GetFileExt} "$R1" $0
  630. StrCpy $R0 '$0'
  631. goto send
  632. BannerTrimPath:
  633. ${BannerTrimPath} "$R1" "$R3" $0
  634. StrCpy $R0 '$0'
  635. goto send
  636. DirState:
  637. ${DirState} "$R2" $0
  638. StrCpy $R0 '$0'
  639. goto send
  640. RefreshShellIcons:
  641. ${RefreshShellIcons}
  642. StrCpy $R0 'done'
  643. goto send
  644. error:
  645. StrCpy $R0 'error'
  646. send:
  647. GetDlgItem $1 $HWND 1208
  648. SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0"
  649. abort
  650. FunctionEnd
  651. Function LocateCallback
  652. MessageBox MB_OKCANCEL '$$R9 "path\name"=[$R9]$\n$$R8 "path" =[$R8]$\n$$R7 "name" =[$R7]$\n$$R6 "size" =[$R6]' IDOK +2
  653. StrCpy $R0 StopLocate
  654. Push $R0
  655. FunctionEnd
  656. Function GetDrivesCallback
  657. MessageBox MB_OKCANCEL '$$9 "drive letter"=[$9]$\n$$8 "drive type" =[$8]' IDOK +2
  658. StrCpy $R0 StopGetDrives
  659. StrCpy $R5 '$R5$9 [$8 Drive]$\r$\n'
  660. Push $R0
  661. FunctionEnd
  662. Function .onInit
  663. InitPluginsDir
  664. GetTempFileName $INI $PLUGINSDIR
  665. File /oname=$INI "FileFunc.ini"
  666. FunctionEnd
  667. Page instfiles
  668. Section "Empty"
  669. SectionEnd