Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Backup timer möglich? (https://www.delphipraxis.net/74114-backup-timer-moeglich.html)

Michael Habbe 28. Jul 2006 20:28

Re: Backup timer möglich?
 
Zitat:

Zitat von shmia
Explorer starten Desktop-> Arbeitsplatz->Systemsteuerung->geplante Tasks
[..]
Die Zeitplanung ist recht flexibel; wer das nachprogrammieren möchte hat viel zu tun.
Also braucht man doch nur noch ein Backupprogramm schreiben/kopieren/kaufen, das die eigentliche Arbeit macht.

Da kann ich was anbieten. Die "Backup.exe" wird vom Taskplaner aufgerufen. Dieses Programm ruft wiederum eine Datei "Backup.cmd" (ab NT) bzw. "Backup.bat" (9x) mit einem Parameter (Datum_Zeit) auf, so dass die eigentliche Kopierarbeit von XCopy in ein vorher bestimmtes Verzichnis ausgeführt wird. So kann man das Backup schon am Verzeichnisnamen wiedererkennen.

Delphi-Quellcode:
program Backup;

{$APPTYPE CONSOLE}

uses windows, sysutils, shellapi;

{ $ R *.RES}

var
  Pfad  : string;
  Params : string;
  Tag, Monat, Jahr, Std, Min, Sec, MSec : Word;
begin
  Pfad := ExtractFilePath(ParamStr(0));
  DecodeDate(Now, Jahr, Monat, Tag);
  DecodeTime(Now, Std, Min, Sec, MSec);
  Params := Format('%.4d%.2d%.2d_%.2d%.2d', [Jahr, Monat, Tag, Std, Min]);
  shellexecute(0,             // Handle des aufrufenden Fensters
               'open',        // open oder print
               'Backup.cmd',  // Name der Anwendung (oder Backup.bat)
               pChar(Params), // Programmparameter
               pChar(Pfad),   // Verzeichnis
               SW_SHOWNORMAL); // Anzeigeoption
end.
Der Inhalt der "Backup.cmd"
Code:
rem Sicherung des gesamten Verzeichnisses nach E
rem ============================================
xcopy c:\arbeit\*.* e:\Backup\%1\*.* /s /m /c /v /i /h /r /y
rem ============================================
So kann man sich ein recht flexibles Backupsystem aufbauen, ohne stundenlange Programmierarbeiten. Die Parameter von xcopy kann man mit Hilfe der Eingabeaufforderung aufrufen: "xcopy /?". Bei diesen Parametern werden die Unterverzeichnisse nach geänderten Dateien durchsucht, dann kopiert und das Archivattribut gesetzt.

Der Vorteil dieser Sache mit dem Taskplaner ist der, dass man sehr flexibel seine Zeiten konfigurieren kann. Desweiteren wird dieses Backup auch ausgeführt, wenn man nicht oder jemand anderes angemeldet ist.

Tobiax 29. Jul 2006 06:33

Re: Backup timer möglich?
 
Hi Michael Habbe is bestimmt einfacher als es zu zu Programmieren aber ich hab jetzt schon einen großen Teil!!!
hier mal der Code oben gennanten Fehler sind noch drin!

Code:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls,Unit7,Unit8, StdCtrls;

type
  TForm6 = class(TForm)
    MainMenu1: TMainMenu;
    Timer1: TTimer;
    Info1: TMenuItem;
    Programm1: TMenuItem;
    N1: TMenuItem;
    schlieen1: TMenuItem;
    Hilfe1: TMenuItem;
    BackupZeit1: TMenuItem;
    N7Tage1: TMenuItem;
    N14Tage1: TMenuItem;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Timer2: TTimer;
    Edit1: TEdit;
    Speichern1: TMenuItem;
    Einstellen1: TMenuItem;
    Button3: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure andereEingabe1Click(Sender: TObject);
    procedure schlieen1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

    procedure N14Tage1Click(Sender: TObject);
    procedure N7Tage1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form6: TForm6;
  Timeleft : integer;
implementation

{$R *.dfm}

procedure TForm6.N7Tage1Click(Sender: TObject);
begin
Timer1.Interval := (168)*1000*60*60 ;
end;

procedure TForm6.N14Tage1Click(Sender: TObject);
begin
Timer1.Interval := (336)*1000*60*60 ;
end;



procedure TForm6.Button2Click(Sender: TObject);
begin
Timer2.Enabled := false;
Label2.Caption:=('---');
Timer1.Enabled := false;
Label4.caption:=('Backup abgebrochen!!');
Label4.Color:=clred;
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
Timer1.Interval := strtoint(Edit1.Text)*1000 ;
Timeleft := GetTickCount ;
Timer1.Enabled := True ;
Timer2.Enabled := True ;
Label4.caption:=('Backup gestartet!!');
Label4.Color:=clLime;
end;

procedure TForm6.schlieen1Click(Sender: TObject);
begin
close;
end;

procedure TForm6.andereEingabe1Click(Sender: TObject);
begin
Form7.Show;
end;

procedure TForm6.Timer2Timer(Sender: TObject);
begin
Label2.caption := inttostr(Timer2.Interval-(GetTickCount-Timeleft)div 1000 )+ ' seconds' ;
end;

procedure TForm6.FormCreate(Sender: TObject);
begin
Timer2.Enabled := false;
Label2.Caption:=('---');
Timer1.Enabled := false;
Label4.caption:=('nicht gestartet!!');
Label4.Color:=clAqua;
end;
procedure TForm6.Timer1Timer(Sender: TObject);
begin
Showmessage('Back Up File Routine') ;
end;

procedure TForm6.Button3Click(Sender: TObject);
begin
Form8.show;
end;

end.
mfg.Tobiax

DeluxXx 29. Jul 2006 11:59

Re: Backup timer möglich?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hm ich würd noch so eine Combobox reinmachen


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz