OK.
Was ich jetzt gemacht habe:
Ich habe das Extrahieren des Parameters wieder eingefügt (bei String ohne Anführungsstrichen wird nach dem letzten Leerzeichen abgeschnitten, das danach ist dann der Parameter)
Ich habe mir alle 3 Sachen (Dateiname, Parameter und Workdir) per ShoeMessage anzeigen lassen und siehe da!
MSN 2 klappt schon mal, genau so wie MSn Plus 3!
Aber MSN 7.5 und ICQ wehren sich immer noch und jetzt klappt der Autostart meines Sounkartenmixers nicht mehr
Bei meinem Soundkartenmixer ist nämlich der spezielle Fall, dass der Pfad dorthin ein Leerzeichen drin hat und sonst kein Parameter angefügt ist.
Also ist es auch nicht genau das was ich suche!
Hier nochmal der aktuelle Code:
Delphi-Quellcode:
procedure TForm3.buttonclick(Sender: TObject);
var button: TButton;
param,
name,workdir:
string;
pos1, pos2: integer;
begin
if Sender
is TButton
then
begin
name := programs[(Sender
as TButton).tag];
if pos('
"',
name)>0
then
begin
pos1 := pos('
"',
name);
pos2 := posex('
"',
name, 2);
param := Copy(
name, pos2+1, MaxInt);
name := Copy(
name, pos1, pos2);
end
else
begin
if rpos('
',
name)>0
then
begin
param := Copy(
name, rpos('
',
name) + 1, MaxInt);
name := Copy(
name, 1, rpos('
',
name) - 1);
end;
name := '
"' +
name + '
"';
end;
workdir := GetShellFolder($0028);
ShowMessage(
name);
ShowMessage(param);
ShowMessage(workdir);
ShellExecute(
Handle, '
open', PChar(
name), PChar(param), PChar(workdir), SW_ShowNormal);
end;
end;
Flare