Hallo!
Ich habe folgendes Problem:
Ich habe einen SvaeDialog, in dem der User einen Dateinamen angeben kann. Nun wird dementsprechend eine Verknüpfung zu meinem Programm erstellt...
Delphi-Quellcode:
function CreateLink(const AFilename, ALNKFilename, ADescription: String) : Boolean;
var
psl: IShellLink;
ppf: IPersistFile;
wsz: PWideChar;
begin
result := false;
if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_inPROC_SERVER, IID_IShellLinkA, psl)) then begin
psl.SetPath(PChar(AFilename));
psl.SetDescription(PChar(ADescription));
psl.SetWorkingDirectory(PChar(ExtractFilePath(AFilename)));
if SUCCEEDED(psl.QueryInterface(IPersistFile, ppf)) then begin
GetMem(wsz, MAX_PATH * 2);
try
MultiByteToWideChar(CP_ACP, 0, PChar(ALNKFilename), -1, wsz, MAX_PATH);
ppf.Save(wsz, true);
result := true;
finally FreeMem(wsz, MAX_PATH * 2);
end;
end;
end;
end;
Das ist die Funktion und das ist der Aufruf:
if dialog_verknuepfung.Execute then CreateLink(Application.ExeName + ' parameter', dialog_verknuepfung.FileName, dialog_verknuepfung.FileName);
Funktioniert auch, nur dass der Link dann auf folgendes Ziel verweist:
"Pfad+Exe parameter"
Somit findet Windoof des natürlich nicht...
Weiß jemand, wie ich die Verknüpfung samt Parameter korrekt erstellen kann? Ich hab nirgends was brauchbares dazu gefunden...
MCXSC