Subversion Repositories userdetect2

Rev

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.