Subversion Repositories userdetect2

Rev

Rev 82 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 82 Rev 85
1
unit UD2_TaskProperties;
1
unit UD2_TaskProperties;
2
 
2
 
3
interface
3
interface
4
 
4
 
5
uses
5
uses
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7
  Dialogs, UD2_Obj, StdCtrls, ExtCtrls, Grids, ValEdit;
7
  Dialogs, UD2_Obj, StdCtrls, ExtCtrls, Grids, ValEdit;
8
 
8
 
9
type
9
type
10
  TUD2TaskPropertiesForm = class(TForm)
10
  TUD2TaskPropertiesForm = class(TForm)
11
    ValueListEditor1: TValueListEditor;
11
    ValueListEditor1: TValueListEditor;
12
    LabeledEdit1: TLabeledEdit;
12
    LabeledEdit1: TLabeledEdit;
13
    Image1: TImage;
13
    Image1: TImage;
14
    ListBox1: TListBox;
14
    ListBox1: TListBox;
15
    Label1: TLabel;
15
    Label1: TLabel;
16
    Button1: TButton;
16
    Button1: TButton;
17
    Label2: TLabel;
17
    Label2: TLabel;
18
    Button2: TButton;
18
    Button2: TButton;
19
    procedure Button2Click(Sender: TObject);
19
    procedure Button2Click(Sender: TObject);
20
    procedure Button1Click(Sender: TObject);
20
    procedure Button1Click(Sender: TObject);
21
  private
21
  private
22
    FUD2: TUD2;
22
    FUD2: TUD2;
23
    FShortTaskName: string;
23
    FShortTaskName: string;
24
    procedure LoadExecutableFilesList;
24
    procedure LoadExecutableFilesList;
25
    procedure LoadIcon;
25
    procedure LoadIcon;
26
  public
26
  public
27
    constructor Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); reintroduce;
27
    constructor Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); reintroduce;
28
  end;
28
  end;
29
 
29
 
30
(*
30
(*
31
var
31
var
32
  UD2TaskPropertiesForm: TTaskPropertiesForm;
32
  UD2TaskPropertiesForm: TTaskPropertiesForm;
33
*)
33
*)
34
 
34
 
35
implementation
35
implementation
36
 
36
 
37
{$R *.dfm}
37
{$R *.dfm}
38
 
38
 
39
uses
39
uses
40
  UD2_Utils, UD2_Main, ShellAPI;
40
  UD2_Utils, UD2_Main, UD2_Parsing, ShellAPI;
41
 
41
 
42
procedure TUD2TaskPropertiesForm.LoadExecutableFilesList;
42
procedure TUD2TaskPropertiesForm.LoadExecutableFilesList;
43
resourcestring
43
resourcestring
44
  LNG_RIOD = 'Run in own directory';
44
  LNG_RIOD = 'Run in own directory';
45
  LNG_ADMIN = 'Run as admin';
45
  LNG_ADMIN = 'Run as admin';
46
var
46
var
47
  sl: TStringList;
-
 
48
  i: integer;
47
  i: integer;
49
  cmdLine, flags: string;
48
  flags: string;
-
 
49
  cmds: TUD2CommandArray;
-
 
50
  cmd: TUD2Command;
50
begin
51
begin
51
  //fud2.GetCommandList(AShortTaskName, ListBox1.Items);
52
  //fud2.GetCommandList(AShortTaskName, ListBox1.Items);
52
 
53
 
53
  ListBox1.Clear;
54
  ListBox1.Clear;
54
  sl := TStringList.Create;
-
 
55
  try
-
 
56
    fud2.GetCommandList(FShortTaskName, sl);
55
  cmds := fud2.GetCommandList(FShortTaskName);
-
 
56
 
57
    for i := 0 to sl.Count-1 do
57
  for i := Low(cmds) to High(cmds) do
58
    begin
58
  begin
59
      cmdLine := sl.Strings[i];
59
    cmd := cmds[i];
-
 
60
 
60
      flags := '';
61
    flags := '';
61
 
62
 
62
      if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then
63
    if cmd.runAsAdmin then
63
      begin
64
    begin
64
        cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]);
-
 
65
        if flags <> '' then flags := flags + ', ';
65
      if flags <> '' then flags := flags + ', ';
66
        flags := flags + LNG_ADMIN;
66
      flags := flags + LNG_ADMIN;
67
      end;
67
    end;
68
 
68
 
69
      if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, cmdLine) >= 1 then
69
    if cmd.runInOwnDirectory then
70
      begin
70
    begin
71
        cmdLine := StringReplace(cmdLine, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]);
-
 
72
        if flags <> '' then flags := flags + ', ';
71
      if flags <> '' then flags := flags + ', ';
73
        flags := flags + LNG_RIOD;
72
      flags := flags + LNG_RIOD;
74
      end;
73
    end;
75
 
74
 
76
      if flags <> '' then
75
    if flags <> '' then
77
      begin
76
    begin
78
        flags := ' [' + flags + ']';
77
      flags := ' [' + flags + ']';
79
      end;
78
    end;
80
 
79
 
81
      ListBox1.Items.Add(cmdLine + flags);
80
    ListBox1.Items.Add(cmd.executable + flags);
82
    end;
-
 
83
  finally
-
 
84
    sl.Free;
-
 
85
  end;
81
  end;
86
end;
82
end;
87
 
83
 
88
procedure TUD2TaskPropertiesForm.LoadIcon;
84
procedure TUD2TaskPropertiesForm.LoadIcon;
89
var
85
var
90
  ico: TIcon;
86
  ico: TIcon;
91
  icoSplit: TIconFileIdx;
87
  icoSplit: TIconFileIdx;
92
  iconString: string;
88
  iconString: string;
93
begin
89
begin
94
  iconString := fud2.ReadMetatagString(FShortTaskName, UD2_Main.TagIcon, '');
90
  iconString := fud2.ReadMetatagString(FShortTaskName, UD2_Main.TagIcon, '');
95
  if iconString <> '' then
91
  if iconString <> '' then
96
  begin
92
  begin
97
    icoSplit := SplitIconString(iconString);
93
    icoSplit := SplitIconString(iconString);
98
    ico := TIcon.Create;
94
    ico := TIcon.Create;
99
    try
95
    try
100
      ico.Handle := ExtractIcon(Application.Handle, PChar(icoSplit.FileName), icoSplit.IconIndex);
96
      ico.Handle := ExtractIcon(Application.Handle, PChar(icoSplit.FileName), icoSplit.IconIndex);
101
      Image1.Picture.Icon.Assign(ico);
97
      Image1.Picture.Icon.Assign(ico);
102
    finally
98
    finally
103
      ico.Free;
99
      ico.Free;
104
    end;
100
    end;
105
  end
101
  end
106
  else
102
  else
107
  begin
103
  begin
108
    UD2MainForm.TasksImageList.GetIcon(0, Image1.Picture.Icon);
104
    UD2MainForm.TasksImageList.GetIcon(0, Image1.Picture.Icon);
109
  end;
105
  end;
110
end;
106
end;
111
 
107
 
112
constructor TUD2TaskPropertiesForm.Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string);
108
constructor TUD2TaskPropertiesForm.Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string);
113
resourcestring
109
resourcestring
114
  LNG_TASK_PROPS = 'Task properties of "%s"';
110
  LNG_TASK_PROPS = 'Task properties of "%s"';
115
var
111
var
116
  Description: string;
112
  Description: string;
117
begin
113
begin
118
  inherited Create(AOwner);
114
  inherited Create(AOwner);
119
  FUD2 := AUD2;
115
  FUD2 := AUD2;
120
  FShortTaskName := AShortTaskName;
116
  FShortTaskName := AShortTaskName;
121
 
117
 
122
  FUD2.IniFile.ReadSectionValues(AShortTaskName, ValueListEditor1.Strings);
118
  FUD2.IniFile.ReadSectionValues(AShortTaskName, ValueListEditor1.Strings);
123
 
119
 
124
  Description := FUD2.GetTaskName(AShortTaskName);
120
  Description := FUD2.GetTaskName(AShortTaskName);
125
  Caption := Format(LNG_TASK_PROPS, [Description]);
121
  Caption := Format(LNG_TASK_PROPS, [Description]);
126
  LabeledEdit1.Text := AShortTaskName;
122
  LabeledEdit1.Text := AShortTaskName;
127
  LoadExecutableFilesList;
123
  LoadExecutableFilesList;
128
  LoadIcon;
124
  LoadIcon;
129
end;
125
end;
130
 
126
 
131
procedure TUD2TaskPropertiesForm.Button2Click(Sender: TObject);
127
procedure TUD2TaskPropertiesForm.Button2Click(Sender: TObject);
132
begin
128
begin
133
  Close;
129
  Close;
134
end;
130
end;
135
 
131
 
136
procedure TUD2TaskPropertiesForm.Button1Click(Sender: TObject);
132
procedure TUD2TaskPropertiesForm.Button1Click(Sender: TObject);
-
 
133
var
-
 
134
  cmd: TUD2Command;
137
begin
135
begin
-
 
136
  cmd.executable := fud2.IniFileName;
-
 
137
  cmd.runAsAdmin := false;
-
 
138
  cmd.runInOwnDirectory := false;
138
  UD2_RunCMD(fud2.IniFileName, SW_NORMAL);
139
  cmd.windowMode := SW_NORMAL;
-
 
140
  UD2_RunCMD(cmd);
139
end;
141
end;
140
 
142
 
141
end.
143
end.
142
 
144