Hier der Quellcode (3.94), falls ihn jmd. brauchen kann:
Code: Alles auswählen
;
; PureBasic Visual Designer v3.92 build 1460
;Programmkonstante
#OptionenAnzahl = 20
;Prozeduren deklarieren um sie sofort benutzen zu können
Declare.s GetExePath() : Declare ReadConfig() : Declare SchreibeConfig()
Declare MessageBoxH(parentWindow, title.s, message.s,flags)
Declare LeseDefaultOptions()
Declare BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
Declare CheckDirExist()
Declare.s GetTempPath()
Declare FileCheck()
;Globale Variable
Global OptionCounter.b, StammVerzeichnis$, mbHook.l, hThreadId.l, Url.s
StammVerzeichnis$=GetExePath()
Url.s = "http://home.arcor.de/pb_zomtec/hc/"
;Variable für die Konfig-Datei dimensionieren
Dim HCini.s(#OptionenAnzahl) : Dim Keyword$(#OptionenAnzahl) : Dim StandardWert$(#OptionenAnzahl)
LeseDefaultOptions()
ReadConfig()
CheckDirExist()
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- MenuBar Constants
Enumeration
#MenuBar_0
EndEnumeration
Enumeration
#MENU_4
#MENU_5
#MENU_9
#MENU_11
#MENU_12
#MENU_13
#MENU_update
EndEnumeration
; BalloonTip Constants
Enumeration
#TOOLTIP_NO_ICON
#TOOLTIP_INFO_ICON
#TOOLTIP_WARNING_ICON
#TOOLTIP_ERROR_ICON
EndEnumeration
;- Gadget Constants
;
Enumeration
#String_FileRequest1 ;0 Kommentierte GadgetConstants müssen in der festen Position
#String_FileRequest2 ;1 bleiben, da dies für den späteren Programmablauf notwendig ist
#ExplorerCombo_0 ;2
#CheckBox_NTFSrechte ;3
#CheckBox_Save ;4
#CheckBox_QuestEnd ;5
#CheckBox_QuestStart ;6
#CheckBox_Log
#Text_0
#Text_1
#Text_3
#ExplorerCombo_1
#Combo_Kopierrichtung
#Button_Start
#Button_Ende
#Frame3D_0
#Button_MakeDefault
#Text_Parameter
#String_RoboParameter
#Text_ParamterWarning
#Button_FileRequest1
#Button_FileRequest2
EndEnumeration
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 18)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12)
Global FontID3
FontID3 = LoadFont(3, "Arial", 16)
Global FontID4
FontID4 = LoadFont(4, "Arial", 8, #PB_Font_Bold)
Global FontID5
FontID5 = LoadFont(5, "Arial", 9)
Global FontID6
FontID6 = LoadFont(6, "Arial", 9, #PB_Font_Bold)
Global FontID7
FontID7 = LoadFont(3, "Arial", 8)
Global FontID8
FontID8 = LoadFont(2, "Arial", 10, #PB_Font_Bold)
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 642, 482, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , #Version$)
If CreateMenu(#MenuBar_0, WindowID())
MenuTitle("Datei")
MenuItem(#MENU_4, "Öffnen")
MenuItem(#MENU_5, "Speichern")
MenuBar()
MenuItem(#MENU_9, "Beenden")
MenuTitle("Bearbeiten")
MenuItem(#MENU_11, "Einstellungen")
MenuTitle("?")
MenuItem(#MENU_12, "Hilfe")
MenuItem(#MENU_update, "Auf Update prüfen...")
MenuItem(#MENU_13, "Über")
EndIf
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 5, 0, 470, 30, HCini.s(8))
SetGadgetFont(#Text_0, FontID1)
StringGadget(#String_FileRequest1, 120, 30, 510, 22, HCini.s(0))
SetGadgetFont(#String_FileRequest1, FontID2)
ButtonGadget(#Button_FileRequest1, 10, 30, 100, 22, "Ordner wählen...")
TextGadget(#Text_1, 5, 70, 470, 30, HCini.s(9))
SetGadgetFont(#Text_1, FontID1)
StringGadget(#String_FileRequest2, 120, 100, 510, 22, HCini.s(1))
SetGadgetFont(#String_FileRequest2, FontID2)
ButtonGadget(#Button_FileRequest2, 10, 100, 100, 22, "Ordner wählen...")
ComboBoxGadget(#Combo_Kopierrichtung, 95, 140, 450, 115)
SetGadgetFont(#Combo_Kopierrichtung, FontID2)
AddGadgetItem(#Combo_Kopierrichtung, 0, "Vom PC auf USB-Stick/Festplatte kopieren")
AddGadgetItem(#Combo_Kopierrichtung, 1, "Von USB-Stick/Festplatte auf PC kopieren")
ButtonGadget(#Button_Start, 20, 400, 140, 40, "Starten")
SetGadgetFont(#Button_Start, FontID3)
ButtonGadget(#Button_Ende, 480, 400, 140, 40, "Beenden")
SetGadgetFont(#Button_Ende, FontID3)
Frame3DGadget(#Frame3D_0, 40, 190, 550, 185, "Einstellungen:")
SetGadgetFont(#Frame3D_0, FontID2)
ButtonGadget(#Button_MakeDefault, 50, 210, 140, 20, "Auf Standard zurücksetzen")
CheckBoxGadget(#CheckBox_NTFSrechte, 50, 240, 300, 15, "NTFS-Rechte kopieren")
CheckBoxGadget(#CheckBox_Save, 50, 260, 300, 15, "Einstellungen beim Beenden speichern")
CheckBoxGadget(#CheckBox_Log, 50, 280, 330, 15, "Log-Datei erstellen")
CheckBoxGadget(#CheckBox_QuestEnd, 350, 240, 235, 15, "Sicherheitsabfrage beim Beenden")
CheckBoxGadget(#CheckBox_QuestStart, 350, 260, 235, 15, "Sicherheitsabfrage vor dem Kopieren")
TextGadget(#Text_Parameter, 50, 305, 150, 20, "Robocopy Parameter:")
SetGadgetFont(#Text_Parameter, FontID6)
StringGadget(#String_RoboParameter, 50, 325, 280, 20, HCini.s(7))
Tooltip$="ACHTUNG! Die Standardkopierparameter sind auf Mirror gesetzt, das Quell-"
Tooltip$+Chr(10)+"verzeichnis wird also ins Zielverzeichnis gespiegelt, d. h. evtl. vorhandene"
Tooltip$+Chr(10)+"Dateien/Ordner im Zielverzeichnis werden überschrieben/gelöscht, sofern sie"
Tooltip$+Chr(10)+"im Quellverzeichnis vorhanden/nicht vorhanden sind!"
BalloonTip(#Window_0, #String_RoboParameter, Tooltip$, "Wichtiger Hinweis!", #TOOLTIP_WARNING_ICON)
TextGadget(#Text_ParamterWarning, 50, 350, 370, 20, "(Warnung! Die Syntax wird nicht geprüft! Du solltest also wissen was du tust!)")
EndIf
EndIf
EndProcedure
Procedure CheckQuit()
If HCini.s(5)="0"
If HCini.s(4)="1" : SchreibeConfig() : EndIf
End
ElseIf MessageRequester("Beenden?", "Willst Du wirklich beenden?",#PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
If HCini.s(4)="1" : SchreibeConfig() : EndIf
End
EndIf
EndProcedure
Procedure AboutMessage()
a$=Chr(169)+" Jan. 2006 by Baumi"+Chr(10)+Chr(10)
a$+"Email: pb_zomtec@arcor.de"+Chr(10)+"Homepage: http://home.arcor.de/pb_zomtec/hc/"
a$+Chr(10)+Chr(10)+"HandlCopy ist Freeware"
a$+Chr(10)+Chr(10)+"Feel free to use and copy it..."
MessageBoxH(0, a$, #version$,#MB_OK)
EndProcedure
Procedure.s GetExePath() ;aktuelles .exe-Verzeichnis ermitteln
;#MAX_PATH=260, max. Pfadlänge
Prg.s = Space(#MAX_PATH)
GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH)
Prg = GetPathPart(Prg)
If (FindString(prg,"\PureBasic\Compilers\", 1))
Prg.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH,@Prg)
EndIf
If Right(Prg, 1) <> "\" : Prg + "\" : EndIf
ProcedureReturn Prg
EndProcedure
;Preferences lesen
Procedure ReadConfig()
OpenPreferences(StammVerzeichnis$+"HC.ini")
For k=0 To OptionCounter
HCini.s(k) = ReadPreferenceString(Keyword$(k), StandardWert$(k))
Next k
ClosePreferences()
EndProcedure
;Preferences schreiben
Procedure SchreibeConfig()
If CreatePreferences(StammVerzeichnis$+"HC.ini")
For k=0 To OptionCounter
WritePreferenceString(Keyword$(k), HCini.s(k))
Next k
ClosePreferences()
EndIf
EndProcedure
Procedure VerzQuelle(wert)
FileRequest$ = PathRequester("Ordner auswählen", HCini.s(wert))
If FileRequest$<>""
If Right(FileRequest$, 1) = "\" : FileRequest$=Left(FileRequest$, Len(FileRequest$)-1) : EndIf
If wert=0
SetGadgetText(#String_FileRequest1, FileRequest$)
Else
SetGadgetText(#String_FileRequest2, FileRequest$)
EndIf
HCini.s(wert)=FileRequest$
EndIf
EndProcedure
;CheckBox auslesen und HCini.s setzen
Procedure LeseCheckBox(GadgetNr,arraynr)
If GetGadgetState(GadgetNr) = 0
HCini.s(arraynr)="0"
Else
HCini.s(arraynr)="1"
EndIf
EndProcedure
Procedure CheckLog()
a$ = GetGadgetText(#String_RoboParameter)
a$ = RemoveString(a$, " /LOG:HandlCopy_log.txt", 1)
a$ = RemoveString(a$, "/LOG:HandlCopy_log.txt", 1)
If HCini.s(10)="1"
a$ + " /LOG:HandlCopy_log.txt"
EndIf
SetGadgetText(#String_RoboParameter,a$)
HCini.s(7)=a$
EndProcedure
Procedure CheckNtfs()
a$=GetGadgetText(#String_RoboParameter)
a$ = RemoveString(a$, " /COPYALL", 1) ;zuerst alle Parameter entfernen
a$ = RemoveString(a$, " /COPY:DAT", 1) ;mit " " falls nicht am Anfang des Strings
a$ = RemoveString(a$, "/COPYALL", 1)
a$ = RemoveString(a$, "/COPY:DAT", 1)
If HCini.s(3)="0"
If FindString(a$, "/COPYALL", 1) <> 0 ;und nun je nach CheckBoxAuswahl wieder hinzufügen
a$=ReplaceString(a$, "/COPYALL", "/COPY:DAT", 1)
Else
a$+" /COPY:DAT"
EndIf
ElseIf HCini.s(3)="1"
If FindString(a$, "/COPY:DAT", 1) <> 0
a$=ReplaceString(a$, "/COPY:DAT", "/COPYALL", 1)
Else
a$+" /COPYALL"
EndIf
EndIf
SetGadgetText(#String_RoboParameter,a$)
HCini.s(7)=a$
EndProcedure
;Prüfen ob Verzeichnis existiert
Procedure CheckDirectory(StringFileRequest,arraynr,EventType)
If EventType=#PB_EventType_LostFocus ;Prüfung wird erst durchlaufen, wenn StringGadget verlassen wird
file$ = GetGadgetText(StringFileRequest)
If Right(file$, 1) = "\" : file$=Left(file$, Len(file$)-1) : EndIf
If FileSize(file$)=-2 And file$<>HCini.s(arraynr) ;-2 = Directory existiert
HCini.s(arraynr)=file$
SetGadgetText(StringFileRequest, HCini.s(arraynr))
EndIf
EndIf
EndProcedure
Procedure CheckDirExist()
For k=0 To 1
If FileSize(HCini.s(k))<>-2 ;Directory existiert nicht od. ist Datei
HCini.s(k)=GetTempPath()
EndIf
Next k
EndProcedure
Procedure.s GetTempPath()
Protected Result.s
Result = Space(#MAX_PATH)
GetTempPath_(#MAX_PATH, @Result)
If Right(Result,1) <> "\" : Result + "\" : EndIf
ProcedureReturn Result
EndProcedure
;Defaultwerte einlesen
Procedure LeseDefaultOptions()
OptionCounter=0
Restore DefaultOptions
Repeat
Read Keyword$(OptionCounter)
Read StandardWert$(OptionCounter)
HCini.s(OptionCounter)=StandardWert$(OptionCounter)
OptionCounter + 1
Until Keyword$(OptionCounter-1)="ende"
EndProcedure
;Standardeinstellungen auf Gadgets anwenden
Procedure SetzeGadgetStatus()
For k=#String_FileRequest1 To #String_FileRequest2
If FileSize (HCini.s(k))=-2
SetGadgetText(k, HCini.s(k))
Else
SetGadgetText(k, "C:\")
EndIf
Next k
If HCini.s(2)="pc->usb" ;Standardwert setzen
SetGadgetState(#Combo_Kopierrichtung, 0)
Else
SetGadgetState(#Combo_Kopierrichtung, 1)
EndIf
For k=#CheckBox_NTFSrechte To #CheckBox_QuestStart
If HCini.s(k)="0"
SetGadgetState(k, 0)
Else
SetGadgetState(k, 1)
EndIf
Next k
If HCini.s(10)="0" ;10 = #CheckBox_Log
SetGadgetState(#CheckBox_Log, 0)
Else
SetGadgetState(#CheckBox_Log, 1)
EndIf
SetGadgetText (#String_RoboParameter, HCini.s(7))
EndProcedure
Procedure Kopierrichtung()
k=GetGadgetState(#Combo_Kopierrichtung)
If k=0
HCini.s(2)="pc->usb"
ElseIf k=1
HCini.s(2)="usb->pc"
EndIf
EndProcedure
Procedure StartKopie()
If HCini.s(2)="pc->usb"
Quelle$=HCini.s(0) : Ziel$=HCini.s(1)
Else
Quelle$=HCini.s(1) : Ziel$=HCini.s(0)
EndIf
;mit Chr(34) Anführungszeichen vor die Pfade, damit auch Verzeichnisse
;mit Leerzeichen funktionieren
parameter$ + " " + Chr(34) + Quelle$ + Chr(34) + " " + Chr(34) + Ziel$ + Chr(34) + " " + HCini.s(7)
If HCini.s(6)="1"
a$="Robocopy.exe wird mit folgenden Parametern gestartet:"
a$+Chr(10)+Chr(10)+parameter$
a$+Chr(10)+Chr(10)+"!!!ACHTUNG!!!"
a$+Chr(10)+"Die Standardkopierparameter sind auf Mirror gesetzt,"
a$+Chr(10)+"das Quellverzeichnis ("+Quelle$+")"
a$+Chr(10)+"wird also ins Zielverzeichnis ("+Ziel$+")"
a$+Chr(10)+"gespiegelt, d. h. evtl. vorhandene Dateien/Ordner in "
a$+Chr(10)+Ziel$+" werden überschrieben/gelöscht, sofern sie"
a$+Chr(10)+"in "+Quelle$+" vorhanden/nicht vorhanden sind!"
a$+Chr(10)+Chr(10)+"Soll HandlCopy den Kopiervorgang jetzt starten?"
a=MessageBoxH(0, a$, "Kopiervorgang starten?",#MB_YESNO)
EndIf
If a=6 ;6 = ja
If RunProgram(StammVerzeichnis$+"robocopy.exe", parameter$, StammVerzeichnis$, 1)
;MessageRequester("Kopie gestartet", "Robocopy erfolgreich gestartet")
If RunProgram("notepad.exe", StammVerzeichnis$+"HandlCopy_log.txt",StammVerzeichnis$) : EndIf
Else
a$="Robocopy konnte nicht gestartet werden!"
a$+Chr(10)+Chr(10)+"Ist die Robocopy.exe im Ordner"+Chr(10)
a$+StammVerzeichnis$+Chr(10)+" vorhanden?"+Chr(10)+Chr(10)
a$+"Robocopy.exe ist "+Chr(169)+" by Microsoft und Bestandteil des Windows Server 2003 Resource Kit Tools,"
a$+" das hier:"+Chr(10)
a$+"http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en"
a$+Chr(10)+"heruntergeladen werden kann."
MessageBoxH(0, a$, "Fehler!",#MB_OK)
EndIf
EndIf
EndProcedure
Procedure RoboParameter(EventType)
If EventType=#PB_EventType_LostFocus ;Prüfung wird erst durchlaufen, wenn StringGadget verlassen wird
HCini(7)=GetGadgetText(#String_RoboParameter)
SetzeGadgetStatus()
EndIf
EndProcedure
Procedure Hilfe()
If OpenHelp(StammVerzeichnis$+"\HandlCopy.chm", "Überblick")
ElseIf MessageBoxH(0, "Hilfedatei HandlCopy.chm nicht gefunden!"+Chr(10)+Chr(10)+"Datei kann hier heruntergeladen werden: http://home.arcor.de/pb_zomtec/hc/HandlCopy.chm", "Fehler!",#MB_OK)
EndIf
EndProcedure
Procedure UpdateCheck()
Version_datei$ = StammVerzeichnis$ + "version.txt"
;version.txt vom Server laden:
URLDownloadToFile_(0, URL.s + "version.txt", Version_datei$, 0, 0)
If ReadFile(0, Version_datei$) ;version.txt auslesen
Versionsnummer$ = ReadString() ;versionsnr. von Handlcopy
Versionupdater$ = ReadString() ;versionsnr. der update.exe
CloseFile(0)
If Versionsnummer$ <> #Version$ Or Versionupdater$ <> #updater$ ;Serverversionen mit lokalen vergleichen
a$ = "Neue Version vorhanden!" + Chr(10) + Chr(10)
a$ + "Soll ich die neue Version herunterladen und installieren?" + Chr(10) + Chr(10)
a$ + "Bestehende Internetverbindung erforderlich!"
a = MessageBoxH(0, a$, "Updatecheck",#MB_YESNO)
If a=6 ;6 = ja
If Versionupdater$ <> #updater$
URLDownloadToFile_(0, URL.s + "update.exe", StammVerzeichnis$ + "update.exe", 0, 0) ;neue update.exe-Version vom Server laden
ElseIf Versionsnummer$ <> #Version$
exename$ = "HandlCopy.exe"
PID$ = Str(GetProcessPID(exename$)) ;PID von .exe mit PBOSL ermitteln
;Übergabeparameter
a$ = StammVerzeichnis$ + " " ;.exe-Startverzeichnis
a$ + PID$ + " " ;PID der .exe als String
a$ + URL.s + " " ;Download-URL des Updates
a$ + exename$ ;Name der zu updatenden .exe (incl. .exe-Extension)
If RunProgram(StammVerzeichnis$+"update.exe", a$, "")
HCini.s(5)="0" ;Sicherheitsabfrage beim beenden abschalten
Delay(3000)
CheckQuit()
Else
a$ = "Update.exe nicht gefunden!" + Chr(10) + Chr(10)
a$ + "update.exe ist für's Update erforderlich." + Chr(10) + Chr(10)
a$ + "Im nächsten Dialog kannst du sie zum Download auswählen. Anschließend" + Chr(10)
a$ + "muss die Updateprüfung erneut aufgerufen werden."
MessageBoxH(0, a$, "Fehler!",#MB_OK)
FileCheck()
EndIf
EndIf
EndIf
Else
MessageRequester("Updatecheck","Keine neue Version vorhanden!")
EndIf
Else
MessageRequester("Fehler!","Version konnte nicht überprüft werden! Besteht Internetverbindung?")
EndIf
EndProcedure
Procedure FileCheck() ;Überprüfen ob .chm, robocopy.exe, update.exe im stammverzeichnis vorhanden
Restore FileCheck
For k=0 To 2
Read Datei$ ;zu überprüfende Datei
Read DownURL$ ;DownloadURL
If FileSize(StammVerzeichnis$+Datei$) = -1
a$ = "Keine "+ Datei$ + " gefunden!" + Chr(10) + Chr(10)
a$ + "Soll HandlCopy die " + Datei$ + " aus dem Internet herunterladen?" + Chr(10) + Chr(10)
a$ + "Bestehende Internetverbindung erforderlich!"
a=MessageBoxH(0, a$, "Dateiüberprüfung",#MB_YESNO)
If a=6 ;6 = ja
URLDownloadToFile_(0, DownURL$ + Datei$, StammVerzeichnis$+Datei$, 0, 0)
EndIf
If FileSize(StammVerzeichnis$+Datei$) = -1
MessageRequester("Fehler!", "Download von "+Datei$+" fehlgeschlagen!")
EndIf
EndIf
Next k
EndProcedure
;------------- Beginn MessageRequester zentrieren -------------
; Code aus CodeArchiverViewer 1.0
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2958&highlight=
; Author: Andreas
; Date: 30. November 2003
; OS: Windows
; Demo: No
;Global mbHook.l,hThreadId.l
Procedure MsgBoxHookProc(uMsg,wParam,lParam)
Protected Messagehandle.l
Select uMsg
Case #HCBT_ACTIVATE
Messagehandle = GetDlgItem_(wParam,$FFFF)
SetWindowLong_(Messagehandle,#GWL_STYLE,#WS_VISIBLE|#WS_CHILD|#SS_CENTER);Zentriert
;SetWindowLong_(Messagehandle,#GWL_STYLE,#WS_VISIBLE|#WS_CHILD|#SS_RIGHT);rechts
UnhookWindowsHookEx_(mbHook)
EndSelect
ProcedureReturn 0
EndProcedure
Procedure MessageBoxH(parentWindow, title.s, message.s,flags)
mbHook = SetWindowsHookEx_(#WH_CBT, @MsgBoxHookProc(), GetModuleHandle_(0), hThreadId)
ProcedureReturn MessageBox_(parentWindow,title,message,flags)
EndProcedure
;Aufruf MessageRequester:
;MessageBoxH(0, "Text", "Titel",#MB_OKCANCEL)
;------------- Ende MessageRequester zentrieren -------------
Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,380)
Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText=@Text$
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
If Title$ > ""
SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
EndIf
EndProcedure
DataSection
DefaultOptions:
Data$ "0_PC-Verzeichnis", "c:\test", "1_USB-Verzeichnis", "c:\temp"
Data$ "2_Copydirection (pc->usb od. usb->pc)", "pc->usb"
Data$ "3_ntfs-rights (0->nein/1->ja)", "0"
Data$ "4_AutoSave (0->nein/1->ja)", "1", "5_QuestEnd (0->nein/1->ja)", "0"
Data$ "6_QuestStart (0->nein/1->ja)", "1"
Data$ "7_RobocopyParameter", "/MIR /COPY:DAT /LOG:HandlCopy_log.txt"
Data$ "8_TextPfad1", "PC-Festplattenordner auswählen:"
Data$ "9_TextPfad2", "USB-Stick/Festplatten-Ordner auswählen:"
Data$ "10_LogDatei (0->nein/1->ja)", "1"
Data$ "ende","ende"
EndDataSection
DataSection
FileCheck:
Data$ "HandlCopy.chm", "http://home.arcor.de/pb_zomtec/hc/"
Data$ "robocopy.exe", "http://www.msu-hb.de/download/"
Data$ "update.exe", "http://home.arcor.de/pb_zomtec/hc/"
EndDataSection
; IDE Options = PureBasic v3.94 (Windows - x86)
; CursorPosition = 462
; FirstLine = 432
; Folding = -----
; Executable = ..\MeineExecutes\HandlCopy\HandlCopy.exe