Seite 2 von 4

Verfasst: 12.05.2008 17:19
von DrNo
Noch ne Frage:
Wenn ich zb. bei einer Installation oder beim Kopieren von etwas ein ExplorerTreeGadget mach und danach das Verzeichnis mittels

Code: Alles auswählen

result.s = GetGadgetText(0) 
ermittelt habe,
Wie mache ich dann, dass das ZielVerzeichnis$ bei

Code: Alles auswählen

CopyDirectory(AusgangsVerzeichnis$, ZielVerzeichnis$, Pattern$ [, Modus])
Auf das ermittelte umgestellt wird???

Verfasst: 12.05.2008 17:34
von BlueHoschi

Code: Alles auswählen

ZielVerzeichnis$ = result.s
oder was meinst Du?

Verfasst: 12.05.2008 19:19
von DrNo
Im Prinzip schon ja aber klappt i wie nicht... (ich bin haltn n00b in pb)

Hier mal der GadgetEvent wo das Ganze sich eigl. abspielen soll:

Code: Alles auswählen

If Event = #PB_Event_Gadget
       If EventGadget() = 0
           result.s = GetGadgetText(7)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(5, 25)
           CopyDirectory(AusgangsVerzeichnis$, "C:\backup\", "", #PB_FileSystem_Recursive)
           SetGadgetState(5, 100)
           MessageRequester("Info", "Die komplette Installation wurde erfolgreich gesichert!")
           End
     EndIf
       EndIf
In dem Backupprogramm sucht man halt mit ExploreTreeGadget das Verzeichnis der bestimmten Anwendung raus und das Programm kopiert dann ein Backup in C:\backup
...

Verfasst: 12.05.2008 19:53
von KeyKon
Du solltest übrigens

Code: Alles auswählen

If CopyDirectory(AusgangsVerzeichnis$, "C:\backup\", "", #PB_FileSystem_Recursive)
  MessageRequester("Info", "Die komplette Installation wurde erfolgreich gesichert!")
Else
  MessageRequester("Fehler", "Die komplette Installation wurde nicht erfolgreich gesichert!")
EndIf
schreiben um sicherzugehen das es überhaupt geklappt hat...

Verfasst: 12.05.2008 20:20
von DrNo
ok danke hab grad ne lektion gelernt des in zukunft nicht zu vergessen. :allright:

Verfasst: 12.05.2008 21:53
von DrNo
Sry dass ich ich nochmal melden muss, aber ich brauch schnell ne Hilfe zu meinem Script. Nach deinem Tipp hat alles wieder geklappt, dann hab ich weitergemacht und war nach 232 Zeilen fertig. Ein einfacher, n00bischer und schlampiger Script, sollte aber eigl. funktionieren. Tut er aber nicht!
Er kann nämlich auf einmal die/das Verzeichnis(e) nichtmehr kopieren.
Eigl. wollte ich es vermeiden den kompletten Quellcode hochzuladen, aber es muss wohl sein, denn ich häng hier wirklich :| . Vllt. könntet ihr euch kurz den Script durchsehn und mir sagen warum er beim Sichern (kopieren) aufeinmal immer scheitert.

Das ganze ist ganz einfach:
bei den Slot-sicherungen kopiert er die einzelnen Slots nach C:\backup\
und beim wiederherstellen einfach wieder zurück. Am anfang überprüft er ob das Verzeichnis und die einzelnen Slots überhaupt exististieren und deaktiviert ggfls. die Wiederherstellungsbuttons, wenn nicht vorhanden.

Danke

Code: Alles auswählen

If OpenWindow(0, 0, 0, 270, 550, "Gecko v0.9 [BETA]", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)

   If CreateGadgetList(WindowID(0))
      ButtonGadget(0, 30, 50, 200, 20, "Slot 1")
      ButtonGadget(1, 30, 70, 200, 20, "Slot 2")
      ButtonGadget(2, 30, 90, 200, 20, "Slot 3")
      ButtonGadget(3, 30, 110, 200, 20, "Slot4")
      ButtonGadget(4, 30, 160, 200, 20, "Slot 1")
      ButtonGadget(5, 30, 180, 200, 20, "Slot 2")
      ButtonGadget(6, 30, 200, 200, 20, "Slot 3")
      ButtonGadget(7, 30, 220, 200, 20, "Slot4")
      ExplorerTreeGadget(8, 10, 330, 250, 150, Verzeichnis$)
      ProgressBarGadget(9,  5, 490, 260,  30, 0, 100)
      SetGadgetState   (9, 0)
      TextGadget(10, 50, 10, 250, 20, "Installationen:")
      TextGadget(11, 105, 35, 250, 20, "Sichern:")
      TextGadget(12, 85, 145, 250, 20, "Wiederherstellen:")
      TextGadget(13, 40, 315, 250, 20, "Bitte Verzeichnis wählen:")
      ButtonGadget(14, 30, 260, 200, 40, "Alle Sicherungen löschen")
        
   EndIf

     

   If CreateMenu(0, WindowID(0))
     MenuTitle("Menü")
     MenuItem(1, "Hilfe")
     MenuItem(2, "Über...")
     MenuItem(3, "Beenden")
   EndIf
   
   If SetCurrentDirectory("C:\backup\Slot 1")
      DisableGadget(4, 0)
      DisableGadget(0, 1)
   Else
      DisableGadget(4, 1)
   EndIf
   
   If SetCurrentDirectory("C:\backup\Slot 2")
      DisableGadget(5, 0)
      DisableGadget(1, 1)
   Else
      DisableGadget(5, 1)
   EndIf
   
   If SetCurrentDirectory("C:\backup\Slot 3")
      DisableGadget(6, 0)
      DisableGadget(2, 1)
   Else
      DisableGadget(6, 1)
   EndIf
   
   If SetCurrentDirectory("C:\backup\Slot 4")
      DisableGadget(7, 0)
      DisableGadget(3, 1)
   Else
      DisableGadget(7, 1)
   EndIf
   
   If SetCurrentDirectory("C:\backup\")
      DisableGadget(14, 0)
   Else
      DisableGadget(14, 1)
   EndIf


   Repeat
     Event = WaitWindowEvent()

     If Event = #PB_Event_Gadget
       If EventGadget() = 14
           SetGadgetState(9, 25)
        If DeleteDirectory("C:\backup\", "", #PB_FileSystem_Recursive | #PB_FileSystem_Force)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Alle Sicherungen wurden erfolgreich gelöscht.")
           End
        Else
           MessageRequester("Fehler", "Die Sicherungen konnten nicht gelöscht werden.")
           End
        EndIf
           
     EndIf
       EndIf
     
     If Event = #PB_Event_Gadget
       If EventGadget() = 0
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory(AusgangsVerzeichnis$, "C:\backup\Slot 1\", "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette  Installation wurde erfolgreich gesichert!")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht erstellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 1
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory(AusgangsVerzeichnis$, "C:\backup\Slot 2\", "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde erfolgreich gesichert!")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht erstellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 2
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory(AusgangsVerzeichnis$, "C:\backup\Slot 3\", "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde erfolgreich gesichert!")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht erstellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 3
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory(AusgangsVerzeichnis$, "C:\backup\Slot 4\", "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette  Installation wurde erfolgreich gesichert!")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht erstellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 4
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory("C:\backup\Slot 1\", AusgangsVerzeichnis$, "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde wiederhergestellt.")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht wiederhergestellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 5
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory("C:\backup\Slot 2\", AusgangsVerzeichnis$, "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde wiederhergestellt.")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht wiederhergestellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
       
    If Event = #PB_Event_Gadget
       If EventGadget() = 6
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory("C:\backup\Slot 3\", AusgangsVerzeichnis$, "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde wiederhergestellt.")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht wiederhergestellt werden.")
           End
        EndIf
        
    If Event = #PB_Event_Gadget
       If EventGadget() = 7
           result.s = GetGadgetText(8)
           AusgangsVerzeichnis$ = result.s
           SetGadgetState(9, 25)
        If CopyDirectory("C:\backup\Slot 4\", AusgangsVerzeichnis$, "", #PB_FileSystem_Recursive)
           SetGadgetState(9, 100)
           MessageRequester("Info", "Die komplette Installation wurde wiederhergestellt.")
           End
        Else
           MessageRequester("Fehler", "Die Sicherung konnte nicht wiederhergestellt werden.")
           End
        EndIf
           
     EndIf
       EndIf
           
     EndIf
       EndIf
     
     Select Event
       
       Case #PB_Event_Menu
         Select EventMenu()
           Case 1 : MessageRequester("Hilfe", "Hier entsteht eine Hilfe.")
           Case 2 : MessageRequester("Credits", "Über...")
           Case 3 : End
         EndSelect
     
     EndSelect
   Until Event = #PB_Event_CloseWindow
 EndIf

Verfasst: 12.05.2008 22:25
von KeyKon
Vermutlich existiert bei dir der Ordner "C:\backup\" nicht, den musst du erstellen bevor du die einzelnen Slot-Ordner erstellen kannst!
Stell einfach folgenden Code vor dein Progamm:

Code: Alles auswählen

If FileSize("C:\backup\") <> -2 ;wenn bei "C:\backup\" kein Ordner ist...
  If CreateDirectory("C:\backup\") = 0 ;... dann Ordner erstellen!
    MessageRequester("Fehler","Konnte Ordner nicht erstellen!",#MB_ICONERROR) ;Konnte nicht erstellt werden!
    End ;Abbruch
  EndIf
EndIf
So hats dann bei mir geklappt...
(nettes übersichtliches Programm übrigens)

Verfasst: 12.05.2008 23:34
von DrNo
Ne s00ry klappt immernoch nicht. Beim Sichern kommt imernoch die meldung dass er nicht speichern konnte.

Code: Alles auswählen

#MB_ICONERROR
gibts bei mir übrigens nicht. Welche Version benutzt du? - Ich 4.10
Woran könnte es sonst liegen? Ich hab immerhin mehrere Stunden (als anfänger) an dem script verbracht. :|

[EDIT] Den Ordner hat er beim sichern damals automatisch erstellt, wenn er nicht da war.

Verfasst: 12.05.2008 23:37
von ts-soft
DrNo hat geschrieben:

Code: Alles auswählen

#MB_ICONERROR
gibts bei mir übrigens nicht. Welche Version benutzt du? - Ich 4.10
Die Konstante sollte in allen Windows-Vollversionen zur Verfügung stehen.
Entweder Deine Installation ist fehlerhaft oder Du nutzt die Demo, wo die
API Konstanten usw. fehlen.

Verfasst: 12.05.2008 23:43
von DrNo
ja ich benutze die demo (habs empfohlen bekommen)
Aber das ganze wird doch sicherlich auch mit der demo gehn oder?
Den Ordner hat er ja früher selber erstellt.
Wär ja schade wenn alles umsonst wär...ich hab den ganzen Nachmittag daran verbacht. :cry:

es gibt ja bestimmt noch eine andere möglichkeit das Problem zu lösen.