Avatar billede martinbenjamin Nybegynder
17. april 2001 - 15:12 Der er 2 kommentarer og
3 løsninger

Kopiering af filer, samt oprettelse af shortcuts i startmenuen og på skrivebordet... HELP!

Som der vist nok fremgår af overskriften, har jeg et lille problem med at kopiere filer, samt finde et StartMenuDir/DesktopDir.

Jeg vil give 250 point for følgende:

Et eksempel hvor man ved at klikke på en knap kopierer *.* fra et dir til et andet dir, og som opretter en genvej i startmenuen og på skrivebordet til en evt. exe-fil som netop er blevet kopieret. Håber ikke at det er at forlange for meget. På forhånd MANGE tak!!!
Avatar billede borrisholt Novice
17. april 2001 - 15:16 #1
Kopieringen af filer er nem nok. Du taget blot udgangspunkt i FileHandling eksemplet du finder på htpp://borrisholt.com

Jens B
Avatar billede nico26 Nybegynder
17. april 2001 - 15:31 #2
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure Copy(const Path, Dest: string);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Copy(const Path, Dest: string);
var
  FileName: string;
  SearchRec: TSearchRec;
begin
  if FindFirst(Path + \'*.*\', faArchive, SearchRec) = 0 then
    try
      repeat
        FileName := SearchRec.Name;
        CopyFile(PChar(Path + FileName), PChar(Dest + FileName), True);
      until FindNext(SearchRec) <> 0;
    finally
      FindClose(SearchRec);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Copy(\'c:\\\', \'c:\\ny mappe\\\');
end;
Avatar billede ziron Nybegynder
17. april 2001 - 23:16 #3
Her er vist hvad du skal bruge...

jeg har lånt lidt af dig Borrisholt, håber det er okay når du selv har ref.\'et i spg.\'et?

unit Unit1;

interface

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

type

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    programfil, startdir: string;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  SysDir: PChar;
  desktop, genvejstartdir, fra, til, fil: string;
  dirl: integer;
  VI    : TOSVersionInfo;
  reg: Treginifile;
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
begin

  fra := \'c:\\ziron\\*.*\';
  til:= \'c:\\ziron_ny\\\';

  // fil := Den nye dir (til) + filnavn.
  fil := til + \'den fil du vil bruge.exe\';

  // Brug af borrisholts copyfiles. (du skal huske at have FileHandling i uses.)

  FileHandling.CopyFiles(fra, til);


  // Opretter genvej på skrivebordet.

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

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

  // Opretter genvej i startmenuen.

  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 + \'hvis du nu vil have flere underbiblotekker, fx hej\\med\';

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



end;

end.

Håber det var hvad du søgte?

/ZIRON
Avatar billede martinbenjamin Nybegynder
18. april 2001 - 13:14 #4
Wow! Thx, det er lige nøjagtig hvad jeg har søgt! Og det er jo noet godt forklaret ziron! Anyway, i har jo alle svaret på det så jeg gir 50 til nico22 og borrisholt, og 150 til ziron... ok?
Thx
Avatar billede ziron Nybegynder
18. april 2001 - 13:53 #5
det var da så lidt og det var da så lidt...

/ZIRON
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