Einzelnen Beitrag anzeigen

Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

Fehler bei eigenem Installationsprogramm - Verknüpfung

  Alt 7. Nov 2002, 16:44
Hi,

ich habe folgendes Problem: Ich habe eine eigene Installationsroutine geschrieben. Soweit - sogut, funktioniert jedenfalls fast alles, bis auf das manche ein Problem haben mein Programm zu installieren. Bei manchen Leuten geht´s bei manchen nicht. Ich möchte für mein Programm eine Verknüpfung auf dem Desktop erstellen (*.lnk Datei) und verwende dafür folgende Funktion:

Code:
procedure NewShellLink(Const pcsFileToLinkTo : String);
const IID_IPersistFile: TGUID = '{0000010b-0000-0000-C000-000000000046}';
var
slShellLink : IShellLink;
pfPersistFile : IPersistFile;
wsShortCut : PWideChar;
hRes : HResult;
sShortCut : String;

begin
CoInitialize(nil);

hRes := CoCreateInstance(CLSID_ShellLink,
nil,
CLSCTX_INPROC_SERVER,
IID_IShellLinkA,
slShellLink);

if hRes = S_OK then
begin
slShellLink.SetPath(PChar(pcsFileToLinkTo)); // HIER DÜRFTE DER FEHLER LIEGEN!!!
hRes := slShellLink.QueryInterface(IID_IPersistFile, pfPersistFile);
end;
if hRes = S_OK then
begin
GetMem(wsShortCut,MAX_PATH shl 1);
sShortCut := ChangeFileExt(pcsFileToLinkTo,'.LNK');
MultiByteToWideChar(CP_ACP,
0,
PChar(sShortCut),
-1,
wsShortCut,
MAX_PATH shl 1);
pfPersistFile.Save(wsShortCut, TRUE);
FreeMem(wsShortCut,MAX_PATH shl 1);
end;
end;
Das Problem ist jetzt, dass bei manchen Leuten die Fehlermeldung "Konnte Pfad nicht setzen" kommt. Ich denke mir, dass es an der oben markieren Zeile liegt, aber wie kann ich den Fehler beheben? Wäre nett, wenn mir jemand helfen könnte!

Gruß Yheeky
  Mit Zitat antworten Zitat