Avatar billede ezke Nybegynder
12. maj 2001 - 16:57 Der er 9 kommentarer og
1 løsning

genveje på skrivebord og i start menuen...

Skal akut bruge et svar da en opgave skal afleveres på mandag :)

Anyway... jeg har en fil og jeg vil oprette genveje til den på skrivebordet og i startmenuen. Problemet er startmenuen og skrivebordets sti, er forskellige afhængig af windoze version og sprog.

Jeg vil derfor sætte MEGET STOR pris på et eksempel hvor der oprettes genveje på skrivebord og i startmenuen! (Helst et fuldt eksempel, hvor der ikke mangler nogen pas-filer (fx, FileHandling fra borrisholdt ;). På forhånd MANGE tak!
Avatar billede francke Nybegynder
12. maj 2001 - 17:10 #1
Højreklik på filen og vælg hvor den skal oprette genvej
Avatar billede snowball Novice
12. maj 2001 - 17:23 #2
francke: Prøv lige og se hvilket kategori spørgsmålet er stillet i ! :)

ezke: Prøv og kig på disse eksempler: http://www.eksperten.dk/spm/22400 og http://www.eksperten.dk/spm/65198

Snowball
Avatar billede ziron Nybegynder
12. maj 2001 - 17:28 #3
gør dette:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, registry, ComObj, ActiveX, ShlObj, FileCtrl;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}


Procedure PlaceLinkOnDeskTop(FileName : TFileName);
  Function GetDesktopFolder : String;
  Const
    Key = \'\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\\';
  begin
    Result := \'\';
    With TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      if OpenKey(key, FALSE) then
        Result := ReadString(\'Desktop\');
    finally
      Free;
    end;
  end;

var
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
begin
  {if not FileExists(FileName) 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(FileName)));  // set link path to proper file
  SL.SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
  LnkName := GetDesktopFolder + #92 + ChangeFileExt(ExtractFileName(FileName), \'.lnk\');
  PF.Save(PWideChar(LnkName), True);      // save link file
end;

Procedure PlaceLinkInStartMenu(FileName : TFileName);
var
  genvejstartdir : String;
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
  reg : Treginifile;
Begin

  reg := Treginifile.Create;
  reg.RootKey :=HKEY_CURRENT_USER;
  genvejstartdir := reg.ReadString(\'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\', \'Start Menu\', \'c:\\\');
  reg.Free;

  genvejstartdir := genvejstartdir + \'\\Programmer\\\';

  genvejstartdir := genvejstartdir + {Sted det skal ligger under programmer} \'FileName\';

  ForceDirectories(genvejstartdir);

  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(FileName)));  // set link path to proper file
  SL.SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
  LnkName := genvejstartdir + #92 + ChangeFileExt(ExtractFileName(FileName), \'.lnk\');
  PF.Save(PWideChar(LnkName), True);      // save link file
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
PlaceLinkOnDeskTop(\'c:\\Bootlog.txt\');
PlaceLinkInStartMenu(\'c:\\Bootlog.txt\');
end;

end.

/ZIRON
Avatar billede francke Nybegynder
12. maj 2001 - 17:29 #4
Hvor fa\'en skulle jeg vide fra!!Mange spm. blive sat de mærkeligste steder!!
Avatar billede ziron Nybegynder
12. maj 2001 - 17:32 #5
snowball >> det var et godt svar jeg gav i http://www.eksperten.dk/spm/65198 ik, hehe :-)

også borrisholti det andet :-)

/ZIRON
Avatar billede snowball Novice
12. maj 2001 - 17:34 #6
ziron: Det er det sikkert (har ikke selv afprøvet det) men responsen på det lyder da ganske fornuftig :)

Snowball
Avatar billede ziron Nybegynder
12. maj 2001 - 17:35 #7
snowball >> hehe det var også bare lidt for sjov...

/ZIRON
Avatar billede ezke Nybegynder
13. maj 2001 - 11:46 #8
Dem ska du sq ha Ziron :) syns du gir det bedste svar i http://www.eksperten.dk/spm/65198 ! Det virker i hvert fald, hvis man lige sørger for at omdøbe linien \"reg := Treginifile.Create;\" til \"reg := Treginifile.Create(en_aller_anaden_string); :)
Avatar billede ziron Nybegynder
13. maj 2001 - 12:11 #9
ezke >> okay jeg har ikke behøvet at gøre det, men hvis det virker er det jo godt...

/ZIRON
Avatar billede ezke Nybegynder
13. maj 2001 - 12:29 #10
eneste måde jeg ku få det til at virke på... opdagede det rent tilfældigt... men som du siger.. as long as it werkz!
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