Avatar billede aasuper Nybegynder
05. august 2000 - 15:51 Der er 3 kommentarer og
1 løsning

Oprette genvej i Startmenu

Jeg er ved at lave et installationsprogram. Installationsprogrammet skal lave en mappe og en genvej til programfilen under programmer i menuen Start.

Altså eks: Start - Programmer - AASuper - Program1


Hvordan gøres dette i Delphi?

>>AASuper
Avatar billede borrisholt Novice
05. august 2000 - 16:17 #1
Hej AASuper

prøv den her

uses
  ComObj, ActiveX, ShlObj, Registry,FileCtrl;

function GetFolderLocation(const FolderType: string): string;
{ Retrieves from registry path to folder indicated in FolderType }
begin
  with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      OpenKey(\'\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\', False);
      Result := ReadString(FolderType);  { Get path for specified folder }
      CloseKey;
    finally
      Free;
    end;
end;


procedure MakeLink(AppName : String; StartIn : String = \'\';LinkLocation : String= \'\');
var
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
begin
  if LinkLocation = \'\' then
    LinkLocation := GetFolderLocation(\'Startup\');

  if LinkLocation[Length(LinkLocation)] <> #92 then
    LinkLocation := LinkLocation + #92;

  AppName := ExpandFileName(AppName);

  if (not FileExists(AppName)) and (not DirectoryExists(LinkLocation))then
    exit;

  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, SL)); { IShellLink implementers are required to implement IPersistFile }
  PF := SL as IPersistFile;
  OleCheck(SL.SetPath(PChar(AppName)));  // set link path to proper file
  StartIn := \'\"\' + StartIn + \'\"\';
  SL.SetArguments(PChar(StartIn));
  LnkName := PChar(LinkLocation) + ChangeFileExt(ExtractFileName(AppName), \'.lnk\');
  PF.Save(PWideChar(LnkName), True);      // save link file
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    ProgramsPath : String;
begin
  ProgramsPath := GetFolderLocation(\'Programs\');
  ProgramsPath := ProgramsPath  + \'\\AASuper\\\';
  ForceDirectories(ProgramsPath);
  MakeLink(Application.ExeName,\'\',ProgramsPath);
end;


Du kan eventuelt modificere den efter dit behov ...

Jens B
Avatar billede beanworld Nybegynder
05. august 2000 - 18:00 #2
Hej! - Brug istedet et smart program til at lave en prof. installation som så mange andre programmer! - Jeg kan let finde et til dig, kontakt mig på: ICQ# 53167307

http://www.GameSun.dk - Chr
Avatar billede borrisholt Novice
06. august 2000 - 19:29 #3
beanworld  >>

Nu var spørgsmålet \"Hvordan gøres dette i Delphi?\" og ikke \"Hvordan downloader jeg et program til at klare ærterne for mig\". Alt andet lige så var det da noget smarter at bruge InstallShield til at lave instalation programmer med ....

Jens B
Avatar billede aasuper Nybegynder
07. august 2000 - 10:39 #4
BorrisHolt>> Det var lige det, jeg skulle bruge! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester