Rev 79 | Rev 82 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 79 | Rev 81 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | {$LEGACYIFEND ON} |
6 | {$LEGACYIFEND ON} |
7 | {$IFEND} |
7 | {$IFEND} |
8 | 8 | ||
9 | {$INCLUDE 'UserDetect2.inc'} |
9 | {$INCLUDE 'UserDetect2.inc'} |
10 | 10 | ||
- | 11 | {$WARN UNSAFE_CODE OFF} |
|
- | 12 | {$WARN UNSAFE_TYPE OFF} |
|
- | 13 | ||
11 | uses |
14 | uses |
12 | Windows, SysUtils, Dialogs, ShellAPI; |
15 | Windows, SysUtils, Dialogs, ShellAPI; |
13 | 16 | ||
14 | const |
17 | const |
15 | EXITCODE_OK = 0; |
18 | EXITCODE_OK = 0; |
16 | EXITCODE_TASK_NOTHING_MATCHES = 1; |
19 | EXITCODE_TASK_NOTHING_MATCHES = 1; |
17 | EXITCODE_RUN_FAILURE = 2; |
20 | EXITCODE_RUN_FAILURE = 2; |
18 | EXITCODE_TASK_NOT_EXISTS = 10; |
21 | EXITCODE_TASK_NOT_EXISTS = 10; |
19 | EXITCODE_INI_NOT_FOUND = 11; |
22 | EXITCODE_INI_NOT_FOUND = 11; |
20 | EXITCODE_RUNCMD_SYNTAX_ERROR = 12; |
23 | EXITCODE_RUNCMD_SYNTAX_ERROR = 12; |
21 | EXTICODE_SYNTAX_ERROR = 13; |
24 | EXITCODE_SYNTAX_ERROR = 13; |
22 | 25 | ||
23 | type |
26 | type |
24 | TArrayOfString = array of String; |
27 | TArrayOfString = array of String; |
25 | 28 | ||
26 | TIconFileIdx = record |
29 | TIconFileIdx = record |
Line 40... | Line 43... | ||
40 | procedure UD2_RunCMD(cmdLine: string; WindowMode: integer=SW_NORMAL); |
43 | procedure UD2_RunCMD(cmdLine: string; WindowMode: integer=SW_NORMAL); |
41 | function SplitIconString(IconString: string): TIconFileIdx; |
44 | function SplitIconString(IconString: string): TIconFileIdx; |
42 | // function GetHTML(AUrl: string): string; |
45 | // function GetHTML(AUrl: string): string; |
43 | procedure VTS_CheckUpdates(VTSID, CurVer: string); |
46 | procedure VTS_CheckUpdates(VTSID, CurVer: string); |
44 | function FormatOSError(ec: DWORD): string; |
47 | function FormatOSError(ec: DWORD): string; |
- | 48 | function CheckBoolParam(idx: integer; name: string): boolean; |
|
45 | 49 | ||
46 | implementation |
50 | implementation |
47 | 51 | ||
48 | uses |
52 | uses |
49 | WinInet, Forms; |
53 | WinInet, Forms; |
Line 254... | Line 258... | ||
254 | cmdFile := Copy(cmdLine, 1, p-1); |
258 | cmdFile := Copy(cmdLine, 1, p-1); |
255 | cmdArgs := Copy(cmdLine, p+1, Length(cmdLine)-p); |
259 | cmdArgs := Copy(cmdLine, p+1, Length(cmdLine)-p); |
256 | end; |
260 | end; |
257 | end; |
261 | end; |
258 | 262 | ||
- | 263 | ZeroMemory(@sei, SizeOf(sei)); |
|
- | 264 | ||
- | 265 | if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then |
|
- | 266 | begin |
|
- | 267 | cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]); |
|
- | 268 | ||
- | 269 | sei.lpVerb := 'runas'; |
|
- | 270 | end; |
|
- | 271 | ||
259 | if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, cmdLine) >= 1 then |
272 | if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, cmdLine) >= 1 then |
260 | begin |
273 | begin |
261 | cmdLine := StringReplace(cmdLine, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]); |
274 | cmdLine := StringReplace(cmdLine, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]); |
262 | 275 | ||
263 | cmdLine := Copy(cmdLine, 1+Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX), Length(cmdLine)-Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX)); |
- | |
264 | - | ||
265 | cmdFile := ExtractFileName(cmdLine); |
276 | cmdFile := ExtractFileName(cmdLine); |
266 | cmdDir := ExtractFilePath(cmdLine); |
277 | cmdDir := ExtractFilePath(cmdLine); |
267 | end |
278 | end |
268 | else |
279 | else |
269 | begin |
280 | begin |
270 | cmdFile := cmdLine; |
281 | cmdFile := cmdLine; |
271 | cmdDir := ''; |
282 | cmdDir := ''; |
272 | end; |
283 | end; |
273 | 284 | ||
274 | ZeroMemory(@sei, SizeOf(sei)); |
- | |
275 | - | ||
276 | if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then |
- | |
277 | begin |
- | |
278 | cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]); |
- | |
279 | - | ||
280 | sei.lpVerb := 'runas'; |
- | |
281 | end; |
- | |
282 | - | ||
283 | sei.cbSize := SizeOf(sei); |
285 | sei.cbSize := SizeOf(sei); |
284 | sei.lpFile := PChar(cmdFile); |
286 | sei.lpFile := PChar(cmdFile); |
285 | {$IFNDEF PREFER_SHELLEXECUTEEX_MESSAGES} |
287 | {$IFNDEF PREFER_SHELLEXECUTEEX_MESSAGES} |
286 | sei.fMask := SEE_MASK_FLAG_NO_UI; |
288 | sei.fMask := SEE_MASK_FLAG_NO_UI; |
287 | {$ENDIF} |
289 | {$ENDIF} |
Line 407... | Line 409... | ||
407 | MessageDlg(LNG_NO_UPDATE, mtInformation, [mbOk], 0); |
409 | MessageDlg(LNG_NO_UPDATE, mtInformation, [mbOk], 0); |
408 | end; |
410 | end; |
409 | end; |
411 | end; |
410 | end; |
412 | end; |
411 | 413 | ||
- | 414 | function CheckBoolParam(idx: integer; name: string): boolean; |
|
- | 415 | begin |
|
- | 416 | Result := ('/'+LowerCase(name) = LowerCase(ParamStr(idx))) or |
|
- | 417 | ('-'+LowerCase(name) = LowerCase(ParamStr(idx))); |
|
- | 418 | end; |
|
- | 419 | ||
412 | end. |
420 | end. |