Statistiques
| Révision :

root / tmp / org.txm.setups / nsis-2.5 / Examples / FileFunc.nsi @ 3119

Historique | Voir | Annoter | Télécharger (18,93 ko)

1
;_____________________________________________________________________________
2
;
3
;                          File Functions
4
;_____________________________________________________________________________
5
;
6
; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
7

    
8
Name "File Functions"
9
OutFile "FileFunc.exe"
10
Caption "$(^Name)"
11
XPStyle on
12
RequestExecutionLevel user
13

    
14
!include "WinMessages.nsh"
15
!include "FileFunc.nsh"
16

    
17
Var INI
18
Var HWND
19
Var STATE
20
Var FUNCTION
21
Var LOCATE1
22
Var LOCATE2
23
Var GETSIZE1
24
Var GETSIZE2
25
Var GETSIZE3
26
Var GETSIZE4
27
Var GETSIZE5
28
Var GETSIZE6
29
Var DRIVESPACE1
30
Var DRIVESPACE2
31
Var GETDRIVES1
32
Var GETTIME1
33
Var GETTIME2
34
Var GETFILEATTRIBUTES1
35
Var GETFILEATTRIBUTES2
36
Var GETFILEVERSION1
37
Var GETOPTIONS1
38
Var GETOPTIONS2
39
Var GETROOT1
40
Var GETPARENT1
41
Var GETFILENAME1
42
Var GETBASENAME1
43
Var GETFILEEXT1
44
Var BANNERTRIMPATH1
45
Var BANNERTRIMPATH2
46
Var DIRSTATE1
47

    
48
Page Custom ShowCustom LeaveCustom
49

    
50
Function ShowCustom
51
	InstallOptions::initDialog "$INI"
52
	Pop $hwnd
53
	GetDlgItem $1 $HWND 1201
54
	ShowWindow $1 0
55
	GetDlgItem $1 $HWND 1202
56
	ShowWindow $1 0
57
	GetDlgItem $1 $HWND 1206
58
	EnableWindow $1 0
59
	SendMessage $1 ${WM_ENABLE} 1 0
60
	StrCpy $LOCATE1 $DOCUMENTS
61
	StrCpy $LOCATE2 '/L=FD /M=*.* /S=0B /G=1 /B=0'
62
	StrCpy $GETSIZE1 '$WINDIR'
63
	StrCpy $GETSIZE2 '/M=Explorer.exe /S=0K /G=0'
64
	StrCpy $GETSIZE3 '$PROGRAMFILES\Common Files'
65
	StrCpy $GETSIZE4 '/S=0M'
66
	StrCpy $GETSIZE5 '$WINDIR'
67
	StrCpy $GETSIZE6 '/G=0'
68
	StrCpy $DRIVESPACE1 'C:\'
69
	StrCpy $DRIVESPACE2 '/D=F /S=M'
70
	StrCpy $GETDRIVES1 'FDD+CDROM'
71
	StrCpy $GETTIME1 '$WINDIR\Explorer.exe'
72
	StrCpy $GETTIME2 'C'
73
	StrCpy $GETFILEATTRIBUTES1 'C:\IO.SYS'
74
	StrCpy $GETFILEATTRIBUTES2 'ALL'
75
	StrCpy $GETFILEVERSION1 '$WINDIR\Explorer.exe'
76
	StrCpy $GETOPTIONS1 '/SILENT=yes /INSTDIR="$PROGRAMFILES\Common Files"'
77
	StrCpy $GETOPTIONS2 '/INSTDIR='
78
	StrCpy $GETROOT1 'C:\path\file.dll'
79
	StrCpy $GETPARENT1 'C:\path\file.dll'
80
	StrCpy $GETFILENAME1 'C:\path\file.dll'
81
	StrCpy $GETBASENAME1 'C:\path\file.dll'
82
	StrCpy $GETFILEEXT1 'C:\path\file.dll'
83
	StrCpy $BANNERTRIMPATH1 'C:\Server\Documents\Terminal\license.htm'
84
	StrCpy $BANNERTRIMPATH2 '34A'
85
	StrCpy $DIRSTATE1 '$TEMP'
86

    
87
	GetDlgItem $1 $HWND 1203
88
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
89
	GetDlgItem $1 $HWND 1205
90
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
91
	InstallOptions::show
92
	Pop $0
93
FunctionEnd
94

    
95
Function LeaveCustom
96
	ReadINIStr $STATE $INI "Field 1" "State"
97
	ReadINIStr $R1 $INI "Field 2" "State"
98
	ReadINIStr $R2 $INI "Field 3" "State"
99
	ReadINIStr $R3 $INI "Field 4" "State"
100
	ReadINIStr $R4 $INI "Field 5" "State"
101
	ReadINIStr $0 $INI "Settings" "State"
102
	StrCmp $0 6 view
103
	StrCmp $0 0 Enter
104
	goto main
105

    
106
	view:
107
	StrCpy $0 '$$'
108
	StrCpy $1 'n'
109
	StrCpy $2 'r'
110
	StrCmp $R4 "LocateCallback" 0 +3
111
	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`
112
	goto send
113
	StrCmp $R4 "GetDrivesCallback" 0 error
114
	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`
115
	goto send
116

    
117
	main:
118
	StrCmp $FUNCTION '' DefaultSend
119
	StrCmp $FUNCTION Locate 0 +4
120
	StrCpy $LOCATE1 $R2
121
	StrCpy $LOCATE2 $R3
122
	goto DefaultSend
123
	StrCmp $FUNCTION GetSize1 0 +4
124
	StrCpy $GETSIZE1 $R2
125
	StrCpy $GETSIZE2 $R3
126
	goto DefaultSend
127
	StrCmp $FUNCTION GetSize2 0 +4
128
	StrCpy $GETSIZE3 $R2
129
	StrCpy $GETSIZE4 $R3
130
	goto DefaultSend
131
	StrCmp $FUNCTION GetSize3 0 +4
132
	StrCpy $GETSIZE5 $R2
133
	StrCpy $GETSIZE6 $R3
134
	goto DefaultSend
135
	StrCmp $FUNCTION DriveSpace 0 +4
136
	StrCpy $DRIVESPACE1 $R1
137
	StrCpy $DRIVESPACE2 $R3
138
	goto DefaultSend
139
	StrCmp $FUNCTION GetDrives 0 +3
140
	StrCpy $GETDRIVES1 $R1
141
	goto DefaultSend
142
	StrCmp $FUNCTION GetTime 0 +4
143
	StrCpy $GETTIME1 $R1
144
	StrCpy $GETTIME2 $R3
145
	goto DefaultSend
146
	StrCmp $FUNCTION GetFileAttributes 0 +4
147
	StrCpy $GETFILEATTRIBUTES1 $R1
148
	StrCpy $GETFILEATTRIBUTES2 $R3
149
	goto DefaultSend
150
	StrCmp $FUNCTION GetFileVersion 0 +3
151
	StrCpy $GETFILEVERSION1 $R1
152
	goto DefaultSend
153
	StrCmp $FUNCTION GetOptions 0 +4
154
	StrCpy $GETOPTIONS1 $R1
155
	StrCpy $GETOPTIONS2 $R3
156
	goto DefaultSend
157
	StrCmp $FUNCTION GetRoot 0 +3
158
	StrCpy $GETROOT1 $R1
159
	goto DefaultSend
160
	StrCmp $FUNCTION GetParent 0 +3
161
	StrCpy $GETPARENT1 $R1
162
	goto DefaultSend
163
	StrCmp $FUNCTION GetFileName 0 +3
164
	StrCpy $GETFILENAME1 $R1
165
	goto DefaultSend
166
	StrCmp $FUNCTION GetBaseName 0 +3
167
	StrCpy $GETBASENAME1 $R1
168
	goto DefaultSend
169
	StrCmp $FUNCTION GetFileExt 0 +3
170
	StrCpy $GETFILEEXT1 $R1
171
	goto DefaultSend
172
	StrCmp $FUNCTION BannerTrimPath 0 +4
173
	StrCpy $BANNERTRIMPATH1 $R1
174
	StrCpy $BANNERTRIMPATH2 $R3
175
	goto DefaultSend
176
	StrCmp $FUNCTION DirState 0 +2
177
	StrCpy $DIRSTATE1 $R2
178

    
179
	DefaultSend:
180
	GetDlgItem $1 $HWND 1201
181
	EnableWindow $1 1
182
	ShowWindow $1 0
183
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
184
	GetDlgItem $1 $HWND 1202
185
	EnableWindow $1 1
186
	ShowWindow $1 0
187
	GetDlgItem $1 $HWND 1203
188
	EnableWindow $1 1
189
	ShowWindow $1 0
190
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
191
	GetDlgItem $1 $HWND 1204
192
	EnableWindow $1 1
193
	ShowWindow $1 0
194
	GetDlgItem $1 $HWND 1205
195
	EnableWindow $1 1
196
	GetDlgItem $1 $HWND 1206
197
	ShowWindow $1 0
198
	EnableWindow $1 0
199
	GetDlgItem $1 $HWND 1207
200
	ShowWindow $1 0
201
	GetDlgItem $1 $HWND 1208
202
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
203
	GetDlgItem $1 $HWND 1209
204
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
205
	GetDlgItem $1 $HWND 1210
206
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
207
	GetDlgItem $1 $HWND 1211
208
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
209

    
210
	ReadINIStr $0 $INI "Field 1" "State"
211
	StrCmp $0 "  1. Locate" 0 GetSize1Send
212
	StrCpy $FUNCTION Locate
213
	GetDlgItem $1 $HWND 1203
214
	ShowWindow $1 1
215
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE1"
216
	GetDlgItem $1 $HWND 1204
217
	ShowWindow $1 1
218
	GetDlgItem $1 $HWND 1205
219
	ShowWindow $1 1
220
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$LOCATE2"
221
	GetDlgItem $1 $HWND 1206
222
	ShowWindow $1 1
223
	SendMessage $1 ${WM_SETTEXT} 1 "STR:LocateCallback"
224
	GetDlgItem $1 $HWND 1207
225
	ShowWindow $1 1
226
	GetDlgItem $1 $HWND 1209
227
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
228
	GetDlgItem $1 $HWND 1210
229
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
230
	GetDlgItem $1 $HWND 1211
231
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
232
	abort
233

    
234
	GetSize1Send:
235
	StrCmp $0 "  2. GetSize                 (file)" 0 GetSize2Send
236
	StrCpy $FUNCTION 'GetSize1'
237
	GetDlgItem $1 $HWND 1203
238
	ShowWindow $1 1
239
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE1"
240
	GetDlgItem $1 $HWND 1204
241
	ShowWindow $1 1
242
	GetDlgItem $1 $HWND 1205
243
	ShowWindow $1 1
244
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE2"
245
	GetDlgItem $1 $HWND 1209
246
	SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
247
	GetDlgItem $1 $HWND 1210
248
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
249
	Abort
250

    
251
	GetSize2Send:
252
	StrCmp $0 "                                   (directory)" 0 GetSize3Send
253
	StrCpy $FUNCTION 'GetSize2'
254
	GetDlgItem $1 $HWND 1203
255
	ShowWindow $1 1
256
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE3"
257
	GetDlgItem $1 $HWND 1204
258
	ShowWindow $1 1
259
	GetDlgItem $1 $HWND 1205
260
	ShowWindow $1 1
261
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE4"
262
	GetDlgItem $1 $HWND 1209
263
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
264
	GetDlgItem $1 $HWND 1210
265
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
266
	Abort
267

    
268
	GetSize3Send:
269
	StrCmp $0 "                                   (no size, no subdir)" 0 DriveSpaceSend
270
	StrCpy $FUNCTION 'GetSize3'
271
	GetDlgItem $1 $HWND 1203
272
	ShowWindow $1 1
273
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE5"
274
	GetDlgItem $1 $HWND 1204
275
	ShowWindow $1 1
276
	GetDlgItem $1 $HWND 1205
277
	ShowWindow $1 1
278
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETSIZE6"
279
	GetDlgItem $1 $HWND 1209
280
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
281
	GetDlgItem $1 $HWND 1210
282
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
283
	Abort
284

    
285
	DriveSpaceSend:
286
	StrCmp $0 "  3. DriveSpace" 0 GetDrivesSend
287
	StrCpy $FUNCTION DriveSpace
288
	GetDlgItem $1 $HWND 1201
289
	ShowWindow $1 1
290
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE1"
291
	GetDlgItem $1 $HWND 1202
292
	ShowWindow $1 1
293
	EnableWindow $1 0
294
	GetDlgItem $1 $HWND 1205
295
	ShowWindow $1 1
296
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$DRIVESPACE2"
297
	GetDlgItem $1 $HWND 1206
298
	ShowWindow $1 0
299
	SendMessage $1 ${WM_SETTEXT} 1 "STR:"
300
	GetDlgItem $1 $HWND 1207
301
	ShowWindow $1 0
302
	GetDlgItem $1 $HWND 1209
303
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Drive"
304
	GetDlgItem $1 $HWND 1210
305
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Options"
306
	abort
307

    
308
	GetDrivesSend:
309
	StrCmp $0 "  4. GetDrives             (by type)" 0 GetDrives2Send
310
	StrCpy $FUNCTION GetDrives
311
	GetDlgItem $1 $HWND 1201
312
	ShowWindow $1 1
313
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETDRIVES1"
314
	GetDlgItem $1 $HWND 1202
315
	ShowWindow $1 1
316
	EnableWindow $1 0
317
	GetDlgItem $1 $HWND 1205
318
	ShowWindow $1 0
319
	GetDlgItem $1 $HWND 1206
320
	ShowWindow $1 1
321
	SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
322
	GetDlgItem $1 $HWND 1207
323
	ShowWindow $1 1
324
	GetDlgItem $1 $HWND 1209
325
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
326
	GetDlgItem $1 $HWND 1211
327
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
328
	abort
329

    
330
	GetDrives2Send:
331
	StrCmp $0 "                                   (all by letter)" 0 GetTime1Send
332
	StrCpy $FUNCTION ''
333
	GetDlgItem $1 $HWND 1201
334
	ShowWindow $1 1
335
	EnableWindow $1 0
336
	SendMessage $1 ${WM_ENABLE} 1 0
337
	SendMessage $1 ${WM_SETTEXT} 1 "STR:ALL"
338
	GetDlgItem $1 $HWND 1202
339
	ShowWindow $1 1
340
	EnableWindow $1 0
341
	GetDlgItem $1 $HWND 1205
342
	ShowWindow $1 0
343
	GetDlgItem $1 $HWND 1206
344
	ShowWindow $1 1
345
	SendMessage $1 ${WM_SETTEXT} 1 "STR:GetDrivesCallback"
346
	GetDlgItem $1 $HWND 1207
347
	ShowWindow $1 1
348
	GetDlgItem $1 $HWND 1209
349
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
350
	GetDlgItem $1 $HWND 1211
351
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Function"
352
	abort
353

    
354
	GetTime1Send:
355
	StrCmp $0 "  5. GetTime                (local time)" 0 GetTime2Send
356
	StrCpy $FUNCTION ''
357
	GetDlgItem $1 $HWND 1201
358
	ShowWindow $1 1
359
	EnableWindow $1 0
360
	SendMessage $1 ${WM_ENABLE} 1 0
361
	GetDlgItem $1 $HWND 1202
362
	ShowWindow $1 1
363
	EnableWindow $1 0
364
	GetDlgItem $1 $HWND 1205
365
	ShowWindow $1 1
366
	EnableWindow $1 1
367
	SendMessage $1 ${WM_SETTEXT} 1 "STR:L"
368
	GetDlgItem $1 $HWND 1210
369
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
370
	Abort
371

    
372
	GetTime2Send:
373
	StrCmp $0 "                                   (file time)" 0 GetFileAttributesSend
374
	StrCpy $FUNCTION GetTime
375
	GetDlgItem $1 $HWND 1201
376
	ShowWindow $1 1
377
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME1"
378
	GetDlgItem $1 $HWND 1202
379
	ShowWindow $1 1
380
	GetDlgItem $1 $HWND 1205
381
	ShowWindow $1 1
382
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETTIME2"
383
	GetDlgItem $1 $HWND 1209
384
	SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
385
	GetDlgItem $1 $HWND 1210
386
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
387
	Abort
388

    
389
	GetFileAttributesSend:
390
	StrCmp $0 "  6. GetFileAttributes" 0 GetFileVersionSend
391
	StrCpy $FUNCTION GetFileAttributes
392
	GetDlgItem $1 $HWND 1201
393
	ShowWindow $1 1
394
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES1"
395
	GetDlgItem $1 $HWND 1202
396
	ShowWindow $1 1
397
	GetDlgItem $1 $HWND 1205
398
	ShowWindow $1 1
399
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEATTRIBUTES2"
400
	GetDlgItem $1 $HWND 1209
401
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Path"
402
	GetDlgItem $1 $HWND 1210
403
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Attrib"
404
	Abort
405

    
406
	GetFileVersionSend:
407
	StrCmp $0 "  7. GetFileVersion" 0 GetCmdSend
408
	StrCpy $FUNCTION GetFileVersion
409
	GetDlgItem $1 $HWND 1201
410
	ShowWindow $1 1
411
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEVERSION1"
412
	GetDlgItem $1 $HWND 1202
413
	ShowWindow $1 1
414
	GetDlgItem $1 $HWND 1205
415
	ShowWindow $1 0
416
	GetDlgItem $1 $HWND 1209
417
	SendMessage $1 ${WM_SETTEXT} 1 "STR:File"
418
	Abort
419

    
420
	GetCmdSend:
421
	StrCmp $0 "  8. GetExeName" +3
422
	StrCmp $0 "  9. GetExePath" +2
423
	StrCmp $0 "10. GetParameters" 0 GetOptionsSend
424
	StrCpy $FUNCTION ''
425
	GetDlgItem $1 $HWND 1205
426
	ShowWindow $1 0
427
	Abort
428

    
429
	GetOptionsSend:
430
	StrCmp $0 "11. GetOptions" 0 GetRootSend
431
	StrCpy $FUNCTION GetOptions
432
	GetDlgItem $1 $HWND 1201
433
	ShowWindow $1 1
434
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS1"
435
	GetDlgItem $1 $HWND 1202
436
	ShowWindow $1 1
437
	EnableWindow $1 0
438
	GetDlgItem $1 $HWND 1205
439
	ShowWindow $1 1
440
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETOPTIONS2"
441
	GetDlgItem $1 $HWND 1209
442
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Parameters"
443
	GetDlgItem $1 $HWND 1210
444
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
445
	Abort
446

    
447
	GetRootSend:
448
	StrCmp $0 "12. GetRoot" 0 GetParentSend
449
	StrCpy $FUNCTION GetRoot
450
	GetDlgItem $1 $HWND 1201
451
	ShowWindow $1 1
452
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETROOT1"
453
	GetDlgItem $1 $HWND 1202
454
	ShowWindow $1 1
455
	GetDlgItem $1 $HWND 1205
456
	ShowWindow $1 0
457
	GetDlgItem $1 $HWND 1209
458
	SendMessage $1 ${WM_SETTEXT} 1 "STR:FullPath"
459
	Abort
460

    
461
	GetParentSend:
462
	StrCmp $0 "13. GetParent" 0 GetFileNameSend
463
	StrCpy $FUNCTION GetParent
464
	GetDlgItem $1 $HWND 1201
465
	ShowWindow $1 1
466
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETPARENT1"
467
	GetDlgItem $1 $HWND 1202
468
	ShowWindow $1 1
469
	GetDlgItem $1 $HWND 1205
470
	ShowWindow $1 0
471
	GetDlgItem $1 $HWND 1209
472
	SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
473
	Abort
474

    
475
	GetFileNameSend:
476
	StrCmp $0 "14. GetFileName" 0 GetBaseNameSend
477
	StrCpy $FUNCTION GetFileName
478
	GetDlgItem $1 $HWND 1201
479
	ShowWindow $1 1
480
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILENAME1"
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:PathString"
487
	Abort
488

    
489
	GetBaseNameSend:
490
	StrCmp $0 "15. GetBaseName" 0 GetFileExtSend
491
	StrCpy $FUNCTION GetBaseName
492
	GetDlgItem $1 $HWND 1201
493
	ShowWindow $1 1
494
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETBASENAME1"
495
	GetDlgItem $1 $HWND 1202
496
	ShowWindow $1 1
497
	GetDlgItem $1 $HWND 1205
498
	ShowWindow $1 0
499
	GetDlgItem $1 $HWND 1209
500
	SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
501
	Abort
502

    
503
	GetFileExtSend:
504
	StrCmp $0 "16. GetFileExt" 0 BannerTrimPathSend
505
	StrCpy $FUNCTION GetFileExt
506
	GetDlgItem $1 $HWND 1201
507
	ShowWindow $1 1
508
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$GETFILEEXT1"
509
	GetDlgItem $1 $HWND 1202
510
	ShowWindow $1 1
511
	GetDlgItem $1 $HWND 1205
512
	ShowWindow $1 0
513
	GetDlgItem $1 $HWND 1209
514
	SendMessage $1 ${WM_SETTEXT} 1 "STR:FileString"
515
	Abort
516

    
517
	BannerTrimPathSend:
518
	StrCmp $0 "17. BannerTrimPath" 0 DirStateSend
519
	StrCpy $FUNCTION BannerTrimPath
520
	GetDlgItem $1 $HWND 1201
521
	ShowWindow $1 1
522
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH1"
523
	GetDlgItem $1 $HWND 1202
524
	ShowWindow $1 1
525
	EnableWindow $1 0
526
	GetDlgItem $1 $HWND 1205
527
	ShowWindow $1 1
528
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$BANNERTRIMPATH2"
529
	GetDlgItem $1 $HWND 1209
530
	SendMessage $1 ${WM_SETTEXT} 1 "STR:PathString"
531
	GetDlgItem $1 $HWND 1210
532
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
533
	Abort
534

    
535
	DirStateSend:
536
	StrCmp $0 "18. DirState" 0 RefreshShellIconsSend
537
	StrCpy $FUNCTION DirState
538
	GetDlgItem $1 $HWND 1203
539
	ShowWindow $1 1
540
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$DIRSTATE1"
541
	GetDlgItem $1 $HWND 1204
542
	ShowWindow $1 1
543
	GetDlgItem $1 $HWND 1205
544
	ShowWindow $1 0
545
	GetDlgItem $1 $HWND 1209
546
	SendMessage $1 ${WM_SETTEXT} 1 "STR:Directory"
547
	Abort
548

    
549
	RefreshShellIconsSend:
550
	StrCmp $0 "19. RefreshShellIcons" 0 Abort
551
	StrCpy $FUNCTION ''
552
	GetDlgItem $1 $HWND 1205
553
	ShowWindow $1 0
554

    
555
	Abort:
556
	Abort
557

    
558
;=Enter=
559
	Enter:
560
	StrCpy $R0 ''
561
	StrCpy $R5 ''
562

    
563
	StrCmp $STATE "  1. Locate" Locate
564
	StrCmp $STATE "  2. GetSize                 (file)" GetSize
565
	StrCmp $STATE "                                   (directory)" GetSize
566
	StrCmp $STATE "                                   (no size, no subdir)" GetSize
567
	StrCmp $STATE "  3. DriveSpace" DriveSpace
568
	StrCmp $STATE "  4. GetDrives             (by type)" GetDrives
569
	StrCmp $STATE "                                   (all by letter)" GetDrives
570
	StrCmp $STATE "  5. GetTime                (local time)" GetTime
571
	StrCmp $STATE "                                   (file time)" GetTime
572
	StrCmp $STATE "  6. GetFileAttributes" GetFileAttributes
573
	StrCmp $STATE "  7. GetFileVersion" GetFileVersion
574
	StrCmp $STATE "  8. GetExeName" GetExeName
575
	StrCmp $STATE "  9. GetExePath" GetExePath
576
	StrCmp $STATE "10. GetParameters" GetParameters
577
	StrCmp $STATE "11. GetOptions" GetOptions
578
	StrCmp $STATE "12. GetRoot" GetRoot
579
	StrCmp $STATE "13. GetParent" GetParent
580
	StrCmp $STATE "14. GetFileName" GetFileName
581
	StrCmp $STATE "15. GetBaseName" GetBaseName
582
	StrCmp $STATE "16. GetFileExt" GetFileExt
583
	StrCmp $STATE "17. BannerTrimPath" BannerTrimPath
584
	StrCmp $STATE "18. DirState" DirState
585
	StrCmp $STATE "19. RefreshShellIcons" RefreshShellIcons
586
	Abort
587

    
588
	Locate:
589
	${Locate} "$R2" "$R3" "LocateCallback"
590
	IfErrors error
591
	StrCmp $R0 StopLocate 0 +3
592
	StrCpy $R0 'stopped'
593
	goto send
594
	StrCpy $R0 'done'
595
	goto send
596

    
597
	GetSize:
598
	${GetSize} "$R2" "$R3" $0 $1 $2
599
	IfErrors error
600
	StrCpy $R0 "Size=$0$\r$\nFiles=$1$\r$\nFolders=$2"
601
	goto send
602

    
603
	DriveSpace:
604
	${DriveSpace} "$R1" "$R3" $0
605
	IfErrors error
606
	StrCpy $R0 "$0"
607
	goto send
608

    
609
	GetDrives:
610
	${GetDrives} "$R1" "GetDrivesCallback"
611
	StrCmp $R0 StopGetDrives 0 +3
612
	StrCpy $R0 '$R5stopped'
613
	goto send
614
	StrCpy $R0 '$R5done'
615
	goto send
616

    
617
	GetTime:
618
	${GetTime} "$R1" "$R3" $0 $1 $2 $3 $4 $5 $6
619
	IfErrors error
620
	StrCpy $R0 'Date=$0/$1/$2 ($3)$\r$\nTime=$4:$5:$6'
621
	goto send
622

    
623
	GetFileAttributes:
624
	${GetFileAttributes} "$R1" "$R3" $0
625
	IfErrors error
626
	StrCpy $R0 '$0'
627
	goto send
628

    
629
	GetFileVersion:
630
	${GetFileVersion} "$R1" $0
631
	IfErrors error
632
	StrCpy $R0  '$0'
633
	goto send
634

    
635
	GetExeName:
636
	${GetExeName} $0
637
	StrCpy $R0 '$0'
638
	goto send
639

    
640
	GetExePath:
641
	${GetExePath} $0
642
	StrCpy $R0 '$0'
643
	goto send
644

    
645
	GetParameters:
646
	${GetParameters} $0
647
	StrCpy $R0 '$0'
648
	StrCmp $R0 '' 0 send
649
	StrCpy $R0 'no parameters'
650
	goto send
651

    
652
	GetOptions:
653
	${GetOptions} "$R1" "$R3" $0
654
	IfErrors error
655
	StrCpy $R0  '$0'
656
	goto send
657

    
658
	GetRoot:
659
	${GetRoot} "$R1" $0
660
	StrCpy $R0  '$0'
661
	goto send
662

    
663
	GetParent:
664
	${GetParent} "$R1" $0
665
	StrCpy $R0  '$0'
666
	goto send
667

    
668
	GetFileName:
669
	${GetFileName} "$R1" $0
670
	StrCpy $R0  '$0'
671
	goto send
672

    
673
	GetBaseName:
674
	${GetBaseName} "$R1" $0
675
	StrCpy $R0  '$0'
676
	goto send
677

    
678
	GetFileExt:
679
	${GetFileExt} "$R1" $0
680
	StrCpy $R0  '$0'
681
	goto send
682

    
683
	BannerTrimPath:
684
	${BannerTrimPath} "$R1" "$R3" $0
685
	StrCpy $R0  '$0'
686
	goto send
687

    
688
	DirState:
689
	${DirState} "$R2" $0
690
	StrCpy $R0  '$0'
691
	goto send
692

    
693
	RefreshShellIcons:
694
	${RefreshShellIcons}
695
	StrCpy $R0 'done'
696
	goto send
697

    
698
	error:
699
	StrCpy $R0 'error'
700

    
701
	send:
702
	GetDlgItem $1 $HWND 1208
703
	SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0"
704

    
705
	abort
706
FunctionEnd
707

    
708
Function LocateCallback
709
	MessageBox MB_OKCANCEL '$$R9    "path\name"=[$R9]$\n$$R8    "path"          =[$R8]$\n$$R7    "name"        =[$R7]$\n$$R6    "size"           =[$R6]' IDOK +2
710
	StrCpy $R0 StopLocate
711

    
712
	Push $R0
713
FunctionEnd
714

    
715
Function GetDrivesCallback
716
	MessageBox MB_OKCANCEL '$$9    "drive letter"=[$9]$\n$$8    "drive type" =[$8]' IDOK +2
717
	StrCpy $R0 StopGetDrives
718
	StrCpy $R5 '$R5$9  [$8 Drive]$\r$\n'
719

    
720
	Push $R0
721
FunctionEnd
722

    
723
Function .onInit
724
	InitPluginsDir
725
	GetTempFileName $INI $PLUGINSDIR
726
	File /oname=$INI "FileFunc.ini"
727
FunctionEnd
728

    
729
Page instfiles
730

    
731
Section "Empty"
732
SectionEnd