Subversion Repositories userdetect2

Rev

Rev 85 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
84 daniel-mar 1
unit UD2_Parsing;
2
 
3
interface
4
 
5
uses
6
  Windows, SysUtils;
7
 
8
// TODO: use this for better object oriented programming
9
 
10
type
11
  TUD2Command = record
12
    executable: string;
13
    runAsAdmin: boolean;
14
    runInOwnDirectory: boolean;
15
    windowMode: integer;
16
  end;
17
  TUD2CommandArray = array of TUD2Command;
18
 
19
  TUD2TDFCondition = record
20
    idMethodName: string;
21
    idStr: string;
22
    dynamicDataUsed: Boolean;
23
    dynamicData: string;
24
    caseSensitive: boolean;
25
  end;
26
  TUD2TDFConditionArray = array of TUD2TDFCondition;
27
 
28
  TUD2TDFEntry = record
29
    ids: TUD2TDFConditionArray;
30
    commands: TUD2CommandArray;
31
  end;
32
  TUD2TDFEntryArray = array of TUD2TDFEntry;
33
 
34
implementation
35
 
36
uses
37
  UD2_Utils;
38
 
39
function ParseTdfLine(line: string; var entry: TUD2TDFEntry): boolean;
40
begin
41
  // TODO: xxxxx
42
 
43
  (*
44
  entry.idName: string;
45
  entry.idValue: string;
46
  entry.dynamicDataUsed: Boolean;
47
  entry.dynamicData: string;
48
  entry.caseSensitive: boolean;
49
  entry.commands: TUD2CommandArray;
50
  *)
51
 
52
  // ReadSectionValues
53
 
54
 
55
  (*
56
    nameVal := SplitString('=', idTermAndCmd);
57
    if Length(nameVal) < 2 then exit;
58
    idTerm := nameVal[0];
59
    cmd    := nameVal[1];
60
  *)
61
end;
62
 
63
function ParseCommandLine(line: string; var cmd: TUD2Command): boolean;
64
begin
65
  if Pos(UD2_RUN_AS_ADMIN, line) >= 1 then
66
  begin
67
    line := StringReplace(line, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]);
68
    cmd.runAsAdmin := true;
69
  end
70
  else cmd.runAsAdmin := false;
71
 
72
  if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, line) >= 1 then
73
  begin
74
    line := StringReplace(line, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]);
75
    cmd.runInOwnDirectory := true;
76
  end
77
  else cmd.runInOwnDirectory := false;
78
 
79
  cmd.executable := line;
80
 
81
  cmd.windowMode := SW_NORMAL; // TODO (future): make it configurable
82
 
83
  result := true;
84
end;
85
 
86
end.
87