101,7 → 101,7 |
{$R *.dfm} |
|
uses |
ShellAPI, Clipbrd, Math, AlphaNumSort, UD2_Utils, UD2_TaskProperties; |
ShellAPI, Clipbrd, Math, AlphaNumSort, UD2_Utils, UD2_TaskProperties, UD2_Parsing; |
|
type |
TUD2ListViewEntry = class(TObject) |
212,9 → 212,8 |
LNG_TASK_NOT_EXISTS = 'The task "%s" does not exist in the INI file.'; |
LNG_NOTHING_MATCHES = 'No identification string matches to your environment. No application was launched. Please check the Task Definition File.'; |
var |
slCmds: TStringList; |
i: integer; |
cmd: string; |
cmds: TUD2CommandArray; |
begin |
if not ud2.TaskExists(ShortTaskName) then |
begin |
224,26 → 223,20 |
Exit; |
end; |
|
slCmds := TStringList.Create; |
try |
ud2.GetCommandList(ShortTaskName, slCmds); |
SetLength(cmds, 0); |
cmds := ud2.GetCommandList(ShortTaskName); |
|
if (slCmds.Count = 0) and ud2.ReadMetatagBool(ShortTaskName, TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then |
if (Length(cmds) = 0) and ud2.ReadMetatagBool(ShortTaskName, TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then |
begin |
MessageDlg(LNG_NOTHING_MATCHES, mtWarning, [mbOK], 0); |
ExitCode := EXITCODE_TASK_NOTHING_MATCHES; |
end; |
|
for i := 0 to slCmds.Count-1 do |
for i := Low(cmds) to High(cmds) do |
begin |
cmd := slCmds.Strings[i]; |
if cmd = '' then continue; |
UD2_RunCMD(cmd, SW_NORMAL); // Idea: Let SW_NORMAL be configurable by the user? |
UD2_RunCMD(cmds[i]); |
end; |
finally |
slCmds.Free; |
end; |
end; |
|
procedure TUD2MainForm.FormDestroy(Sender: TObject); |
var |
388,8 → 381,14 |
end; |
|
procedure TUD2MainForm.Button1Click(Sender: TObject); |
var |
cmd: TUD2Command; |
begin |
UD2_RunCMD(ud2.IniFileName, SW_NORMAL); |
cmd.executable := ud2.IniFileName; |
cmd.runAsAdmin := false; |
cmd.runInOwnDirectory := false; |
cmd.windowMode := SW_NORMAL; |
UD2_RunCMD(cmd); |
end; |
|
procedure TUD2MainForm.Button2Click(Sender: TObject); |
402,14 → 401,19 |
|
procedure TUD2MainForm.URLLabelClick(Sender: TObject); |
var |
s: string; |
cmd: TUD2Command; |
begin |
s := TLabel(Sender).Caption; |
if Pos('@', s) > 0 then |
s := 'mailto:' + s |
cmd.executable := TLabel(Sender).Caption; |
if Pos('@', cmd.executable) > 0 then |
cmd.executable := 'mailto:' + cmd.executable |
else |
s := 'http://' + s; |
UD2_RunCMD(s, SW_NORMAL); |
cmd.executable := 'http://' + cmd.executable; |
|
cmd.runAsAdmin := false; |
cmd.runInOwnDirectory := false; |
cmd.windowMode := SW_NORMAL; |
|
UD2_RunCMD(cmd); |
end; |
|
procedure TUD2MainForm.TasksPopupMenuPopup(Sender: TObject); |
529,7 → 533,10 |
begin |
ExitCode := EXITCODE_OK; |
|
if ParamStr(3) <> '' then UD2_RunCMD(ParamStr(3), SW_NORMAL); // Idea: SW_NORMAL changeable via parameter |
if ParamStr(3) <> '' then |
begin |
UD2_RunCMD(UD2P_DecodeCommand(ParamStr(3))); |
end; |
end |
else |
begin |
570,23 → 577,28 |
procedure TUD2MainForm.Button5Click(Sender: TObject); |
var |
idTerm: string; |
slCmd: TStrings; |
cmds: TUD2CommandArray; |
sCmds: string; |
i: integer; |
begin |
// TODO xxx: Auch eine Möglichkeit geben, einfach nur "Testecho(abc)" einzugeben und es kommt was bei raus |
|
if InputQuery('Enter example term', 'Example: Testecho(abc):abc=calc.exe', idTerm) then |
begin |
slCmd := TStringList.Create; |
try |
ud2.CheckTerm(idTerm, slCmd); |
if slCmd.Count = 0 then |
SetLength(cmds, 0); |
cmds := ud2.CheckTerm(idTerm); |
|
sCmds := ''; |
for i := Low(cmds) to High(cmds) do |
begin |
sCmds := sCmds + cmds[i].executable + #13#10; |
end; |
|
if Length(cmds) = 0 then |
ShowMessage('No commands would be executed.') |
else |
showmessage('Following commands would be executed:' + #13#10#13#10 + slCmd.Text); |
finally |
slCmd.Free; |
showmessage('Following commands would be executed:' + #13#10#13#10 + sCmds); |
end; |
end; |
LoadDetectedIDs; |
end; |
|