Proszę kogoś kto się wyznaje na XP o pomoc. Stosuje taką proc na dodanie skrótu:
procedure DodajSkrotDoPulpitu(prog_path:string);
var
obiekt:IUnknown;
skrot:IShellLink;
p_file:IPersistFile;
dir:String;
w_prog_path:WideString;
reg:TRegIniFile;
begin
obiekt:=CreateComObject(CLSID_ShellLink);
skrot:=obiekt as IShellLink;
p_file:=obiekt as IPersistFile;
with skrot do
begin
SetPath(PChar(prog_path));
SetWorkingDirectory(PChar(ExtractFilePath(prog_path)));
end;
reg:=TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
try
dir:=reg.ReadString('Shell Folders','Desktop','');
CreateDir(dir);
w_prog_path:=dir+'\MyProg.lnk';
p_file.Save(PWChar(w_prog_path),False);
finally
reg.Free;
end;
end;
Pod Win98 nie ma problemów ale pod XP(się na nim nie znam) jak się zainstaluje (ta proc jest w instalatorze), to wszystko działa ale tylko z poziomu admina. Z poziomu użytkownika nie można nawet execa uruchomić bo wywala błąd. To samo ze skrótem w menu Start. Co tu trzeba poprawić?