Entwickler-Ecke

Windows API - So kopieren wie Windows


highhatcompy - Sa 28.08.04 13:06
Titel: So kopieren wie Windows
Hallo,
ich schreibe ein Programm zur Datensicherung. Nun will ich Die API Funktion von Windows nutzen, leider weiß ich nicht wie die heißt! :oops:
Kann mir jemand helfen ?

Mfg

Highhatcompy


Delete - Sa 28.08.04 14:09

Welche API Funktion? Suche im MSDN COPYFILE oder meinst du Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION?


highhatcompy - Sa 28.08.04 14:46

Jo, jo genau SHFILEOPERATION die suche ich!

Vielen Dank und Grüße aus Thüringen

HHC


hermit.de - Mo 06.09.04 17:05

Es geht auch so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
procedure ExecuteFile(const AFilename: string; AParameter, ACurrentDir: string; AWait: Boolean);
var
  si: TStartupInfo;
  pi: TProcessInformation;
begin
  if Length(ACurrentDir) = 0 then
    begin
      ACurrentDir := ExtractFilePath(AFilename);
      if ACurrentDir[Length(ACurrentDir)] = '' then
        Delete(ACurrentDir, Length(ACurrentDir), 1);
    end;
  FillChar(si, SizeOf(si), 0);
  with si do
    begin
      cb := SizeOf(si);
      dwFlags := STARTF_USESHOWWINDOW;
      wShowWindow := SW_NORMAL;
    end;
  FillChar(pi, SizeOf(pi), 0);
  if Length(AParameter) = 0 then
    AParameter := Format('"%s"', [AFilename])
  else
    AParameter := Format('"%s" "%s"', [AFilename, AParameter]);
  if CreateProcess(nil, PChar(AParameter), nilnil, False,
    CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_CONSOLE or
    NORMAL_PRIORITY_CLASS, nil, PChar(ACurrentDir), si, pi) then
    begin
      try
        if AWait then WaitForSingleObject(pi.hProcess, INFINITE);
      finally
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
      end;
    end;
end;


AFilename ist die Exe
AParameter der zu übergebende Parameter
ACurrentDir das Verzeichniss der Exe (kann wegfallen, wenn exe mit konpletten Pfad angegeben wird)
AWait warten auf Ende


ev. mit dem Format-String noch probieren ( beim 2. "%s" ohne Anführungszeichen)
ansonsten tut das bei mir auch so.

hermit 8)


Delete - Mo 06.09.04 17:26

Upps, da ist wohl jemand in den falschen Beitrag gerutscht. ;)
Hier ging´s ums Kopieren.

Na ja, passiert schon mal ...