ins Dunkel zu bringen.
. Schreibrechte habe ich natürlich immer und Überall.
dort nützen die mir nix.
Ich erstelle mit meinem Tool - 2 Cutom Ordner welche ich in 2 StringGatget's vorher mit Namen vershen kann und diese sollen immer dort erstellt werden wo sich auch meine Tool exe befindet. Durch die Zeile:
wird das auch erledigt, so wie ich es haben möchte (danke an RSBasic fürs helfen)
Jetzt soll die Kopierfunktion sich so verhalten, dass die 3 Dateien (2txt Info Dateien und eine Web-Verknüpfung) ebnfalls automatisch einmal in den ersten erstellten Ordner und einmal in den 2ten erstellten Unterordner kopiert werden. (nicht an dem Platz wo sich die Tool exe befindet, nur in die Ordner)
komme ich hier nicht weiter. Denn ich muss der Procedure erst einmal klar machen dass sie berücksichtigt, es sind 2 Ordner vorhanden wo die beiden TXT Dateien und die Web-Verknüpfung rein sollen.
Um das ganze zu sehen wo es die Ordner und 3 Dateien erstellt, besser als Exe kompilieren und diese starten. Denn Die Ordner werden ja nur erstellt wenn die exe vorhanden ist:
Zum testen den Button "Verzeichnis anlegen" klicken.
Zum Veranschaulichen hier das Gerippe.
Code: Alles auswählen
Enumeration
#Window_0
#EingabeFeld_Name
#EingabeFeld_Name2
#Btn_Erstellen
#container2
#Font_Btn_Erstellen
#TargetFiles
#SourceFiles
#EingabeFeld_Name_Font
#EingabeFeld_Name_Font2
#Btn_MakeDir
#Font_Btn_MakeDir
#container
#Infobar
#Infobar_Font
#Gadget_exit
#Exit_btn
#Btn_Minimize
#Gadget_Minimize
#Line_Shadow
#Gadget_Line_Shadow
EndEnumeration
DataSection
;{ Suppot_Me TxT Datei
Suppot_Me:
;{Size = 18 bytes
Data.l $70707553,$2074726F,$74736574,$74616420
Data.b $65,$69
Suppot_Me_End:
;}
;{ Unterstuetze TxT Datei
Unterstuetze:
;{Size = 22 bytes
Data.l $4E49454D,$52412045,$54494542,$73657420,$65542074
Data.b $78,$74
Unterstuetze_End:
;}
EndDataSection
; Load Suppot_Me TxT Datei into Mem
Procedure Suppot_Me_Extract(fileName.s)
If CreateFile(1, fileName) ; create file
L1 = ?Suppot_Me_End - ?Suppot_Me ; get size of included binary
WriteData(1, ?Suppot_Me, L1) ; write included binary to file
CloseFile(1) ; close file
Else
MessageRequester("Error", "Schreibfehler! Keine Schreibrechte auf C:?", 0)
EndIf
ProcedureReturn 1
EndProcedure
; Load Unterstuetze TxT Datei into Mem
Procedure Unterstuetze_Extract(fileName.s)
If CreateFile(2, fileName) ; create file
L2 = ?Unterstuetze_End - ?Unterstuetze ; get size of included binary
WriteData(2, ?Unterstuetze, L2) ; write included binary to file
CloseFile(2) ; close file
Else
MessageRequester("Error", "Schreibfehler! Keine Schreibrechte auf C:?", 0)
EndIf
ProcedureReturn 1
EndProcedure
; EXTRACT TEXT DATEIEN
Procedure WriteToDir(dir.s)
Suppot_Me_Extract(dir + "SUPPORT ME.txt")
Unterstuetze_Extract(dir + "MEINE ARBEIT.txt")
;erstelle Web Verknuepfung
If CreateFile(0, dir + "google.de.url")
WriteStringN(0, "[{000214A0-0000-0000-C000-000000000046}]")
WriteStringN(0, "Prop3=19,2")
WriteStringN(0, "[InternetShortcut]")
WriteStringN(0, "URL=http://www.google.de/")
WriteStringN(0, "IDList=")
CloseFile(0)
Else
MessageRequester("Information","Konnte Datei nicht erstellen!")
EndIf
EndProcedure
;////////////////////////////////////
; DEFINIERE EXIT BUTTON BILD
;////////////////////////////////////
CreateImage(#Exit_btn,30,30)
StartDrawing(ImageOutput(#Exit_btn))
FillArea(1,1,-1,RGB(55, 110, 133))
Line(6,23,18,-18,$FFFFFF)
Line(6,6,18,18,$FFFFFF)
StopDrawing()
;////////////////////////////////////
; DEFINIERE MINIMIEREN BUTTON
;////////////////////////////////////
CreateImage(#Btn_Minimize,30,30)
StartDrawing(ImageOutput(#Btn_Minimize))
FillArea(1,1,-1,RGB(55, 110, 133))
Line(6,23,18,1,$FFFFFF)
StopDrawing()
;////////////////////////////////////
; SCHATTEN
;////////////////////////////////////
CreateImage(#Line_Shadow,498,1,32,RGB(0, 39, 91))
StartDrawing(ImageOutput(#Line_Shadow))
StopDrawing()
;////////////////////////////////////
; DEFINIERE START UP EFFEKT, FADE IN
;////////////////////////////////////
#AW_BLEND = $80000 ;programmstart Einblenden
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;////////////////////////////////////
; FESTLEGEN, TEXT VERTICAL ALIGN IN EINGABEFELD
;////////////////////////////////////
Procedure StringGadgetVCenter(GadgetID)
hwndEdit = GadgetID(GadgetID)
LineCount = SendMessage_(hwndEdit,#EM_GETLINECOUNT, 0, 0)
hdc = GetDC_(hwndEdit)
SelectObject_(hdc,GetGadgetFont(GadgetID))
GetTextExtentPoint32_(hdc,"ABC",3,fsz.SIZE)
ReleaseDC_(hwndEdit,hdc)
GetClientRect_(hwndEdit,eRect.RECT)
eRect\top = (GadgetHeight(GadgetID) - fsz\cy * LineCount) / 2
eRect\bottom = eRect\top + (fsz\cy * LineCount) + 4
If eRect\bottom < GadgetHeight(GadgetID)
SendMessage_(hwndEdit,#EM_SETRECT,0,eRect)
EndIf
EndProcedure
Procedure OpenWindow_Window_0()
OpenWindow(#Window_0, 502, 158, 500, 610, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered|#WS_VISIBLE)
; FENSTER FARBE
SetWindowColor(#Window_0, RGB(109, 145, 160))
; FOKUS AUF TOOL SETZEN
SetActiveWindow(#Window_0)
;////////////////////////////////////
; TOOL TITEL INFOBAR
;////////////////////////////////////
TextGadget(#Infobar,WindowWidth(#Window_0)-499, 1, 438, 30, " < > FastRel v1",#SS_CENTERIMAGE)
SetGadgetFont(#Infobar, LoadFont(#Infobar_Font, "Microsoft Sans Serif", 10, #PB_Font_HighQuality))
SetGadgetColor(#Infobar , #PB_Gadget_BackColor, RGB(55, 110, 133)) ;TEXT Background Color
SetGadgetColor(#Infobar , #PB_Gadget_FrontColor, RGB(180, 199, 224));TEXT Color
;////////////////////////////////////
; EXIT BUTTON POSITIONIEREN
;////////////////////////////////////
ImageGadget(#Gadget_exit,WindowWidth(0)-31,1,30,30,ImageID(#Exit_btn))
;////////////////////////////////////
; MINIMIZE BUTTON POSITIONIEREN
;////////////////////////////////////
ImageGadget(#Gadget_Minimize,WindowWidth(0)-61,1,30,30,ImageID(#Btn_Minimize))
;////////////////////////////////////
; SCHATTEN POSITIONIEREN
;////////////////////////////////////
ImageGadget(#Gadget_Line_Shadow,1,31,498,1,ImageID(#Line_Shadow))
;////////////////////////////////////
; EINGABEFELD FÜR Unter-ORDNER NAME
;////////////////////////////////////
StringGadget(#EingabeFeld_Name, 30, 60, 440, 35," Unter Ordner Original Name eingeben",#PB_String_BorderLess | #ES_MULTILINE);
SetGadgetFont(#EingabeFeld_Name, LoadFont(#EingabeFeld_Name_Font, "Microsoft Sans Serif", 10, #PB_Font_HighQuality))
StringGadgetVCenter(#EingabeFeld_Name)
SetGadgetColor(#EingabeFeld_Name , #PB_Gadget_BackColor, RGB(183, 201, 209))
SetGadgetColor(#EingabeFeld_Name , #PB_Gadget_FrontColor, RGB(17, 80, 108))
;////////////////////////////////////
; EINGABEFELD 2 FÜR ORDNER NAME
;////////////////////////////////////
StringGadget(#EingabeFeld_Name2, 30, 105, 440, 35," Neuen Ordner Name eingeben",#PB_String_BorderLess | #ES_MULTILINE);
SetGadgetFont(#EingabeFeld_Name2, LoadFont(#EingabeFeld_Name_Font2, "Microsoft Sans Serif", 10, #PB_Font_HighQuality))
StringGadgetVCenter(#EingabeFeld_Name2)
SetGadgetColor(#EingabeFeld_Name2 , #PB_Gadget_BackColor, RGB(183, 201, 209))
SetGadgetColor(#EingabeFeld_Name2 , #PB_Gadget_FrontColor, RGB(17, 80, 108))
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; 1px RAHMEN UM DEN BUTTON: ORDNER ERSTELLEN
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
TextGadget(#container,96, 519, 307, 67,"")
SetGadgetColor(#container, #PB_Gadget_BackColor, RGB(183, 201, 209));TEXT Background Color
;////////////////////////////////////
; BUTTON ORDNER ERSTELLEN
;////////////////////////////////////
TextGadget(#Btn_MakeDir, 97, 520, 305, 65, "erstellen",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_MakeDir, LoadFont(#Font_Btn_MakeDir, "Microsoft Sans Serif", 12, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_MakeDir, #PB_Gadget_BackColor, RGB(109, 145, 160)) ;TEXT Background Color
SetGadgetColor(#Btn_MakeDir, #PB_Gadget_FrontColor, RGB(183, 201, 209));TEXT Color
;////////////////////////////////////
; ERSTELL ZIEL FÜR DRAG & DROP DATEIEN
;////////////////////////////////////
ListIconGadget(#TargetFiles, 29, 170, 443, 330, "Dateien hier einfügen, die verschoben werden sollen", 280)
SetGadgetColor(#TargetFiles , #PB_Gadget_BackColor, RGB(55, 110, 133)) ;TEXT Background Color
SetGadgetColor(#TargetFiles , #PB_Gadget_FrontColor, RGB(248, 248, 248));TEXT Color
;////////////////////////////////////
; DRAG & DROP ZIEL FREIGESCHALTEN
;////////////////////////////////////
EnableGadgetDrop(#TargetFiles, #PB_Drop_Files, #PB_Drag_Copy)
;EndIf
EndProcedure
;////////////////////////////////////
; ERSTELLE ORDNER MIT UNTERORDNER
;////////////////////////////////////
Procedure CreateDirectoryAll(dir.s)
Protected result.l, dir_sub.s, dir_total.s, count.l
count = 1
dir_sub = StringField(dir, count, "\")
dir_total = dir_sub + "\"
While dir_sub <> ""
result.l = CreateDirectory(dir_total)
count + 1
dir_sub = StringField(dir, count, "\")
dir_total + dir_sub + "\"
Wend
ProcedureReturn result
EndProcedure
OpenWindow_Window_0()
;////////////////////////////////////
; TOOL START UP EFFEKT
;////////////////////////////////////
AnimateWindow_(WindowID(0),500,#AW_BLEND)
Repeat
Event = WaitWindowEvent()
EventGadget = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
Select EventGadget()
;////////////////////////////////////
;- EINGABEFELD auto SELECT ON FOCUS
;////////////////////////////////////
Case #EingabeFeld_Name
;Auto select on Focus
If EventType() = #PB_EventType_Focus
SendMessage_(GadgetID(EventGadget()), #EM_SETSEL, Len(GetGadgetText(EventGadget())), 0)
EndIf
;////////////////////////////////////
;- EINGABEFELD 2 auto SELECT ON FOCUS
;////////////////////////////////////
Case #EingabeFeld_Name2
;Auto select on Focus
If EventType() = #PB_EventType_Focus
SendMessage_(GadgetID(EventGadget()), #EM_SETSEL, Len(GetGadgetText(EventGadget())), 0)
EndIf
;////////////////////////////////////
;- ERSTELL ORDNER AUS EINGABE FELDERN
;////////////////////////////////////
Case #Btn_MakeDir
Define.s Dir1, Dir2, Filename
Define.i i
Dir1 = GetPathPart(ProgramFilename()) + GetGadgetText(#EingabeFeld_Name2) + "\"
Dir2 = Dir1 + GetGadgetText(#EingabeFeld_Name) + "\" ; Unterordner
CreateDirectoryAll(Dir2)
;////////////////////////////////////
;- EXTRACT FILES
;////////////////////////////////////
WriteToDir(Dir1)
WriteToDir(Dir2)
;/////////////////////////////////////////////////////////////////////
;
;- LESE DATEN AUS Drag n Drop Feld und verschiebe in Unterordner
; Unterordner: Dir2 = Dir1 + GetGadgetText(#EingabeFeld_Name) + "\"
;
;/////////////////////////////////////////////////////////////////////
For i = 0 To CountGadgetItems(#TargetFiles) - 1
Filename = GetGadgetItemText(#TargetFiles, i)
RenameFile(Filename, Dir2 + GetFilePart(Filename))
Next i
ClearGadgetItems(#TargetFiles)
;/////////////////////////////////////////////////////////////////////
SetGadgetText(#EingabeFeld_Name," Ordner wurde erstellt")
SetGadgetText(#EingabeFeld_Name2," Unter-Ordner wurde erstellt")
;////////////////////////////////////
;- EXIT BUTTON FUNCTION
;////////////////////////////////////
Case #Gadget_exit
End
;////////////////////////////////////
;- MINIMIZE BUTTON FUNCTION
;////////////////////////////////////
Case #Gadget_Minimize
If EventType = #PB_EventType_LeftClick
SetWindowState(#Window_0, #PB_Window_Minimize)
EndIf
EndSelect
EndIf
;////////////////////////////////////
;- DRAG WINDOW MIT MAUS
;////////////////////////////////////
Select Event
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
EndSelect
;////////////////////////////////////////////////////////////////////////
;- DRAG & DROP START EVENT on the source gadgets, initiate a drag & drop
;////////////////////////////////////////////////////////////////////////
If Event = #PB_Event_Gadget And EventType() = #PB_EventType_DragStart
Select EventGadget()
Case #SourceFiles
Files$ = ""
For i = 0 To CountGadgetItems(#SourceFiles)-1
If GetGadgetItemState(#SourceFiles, i) & #PB_Explorer_Selected
Files$ + GetGadgetText(#SourceFiles) + GetGadgetItemText(#SourceFiles, i) + Chr(10)
EndIf
Next i
If Files$ <> ""
DragFiles(Files$)
EndIf
EndSelect
;////////////////////////////////////////////////////////////////////////
;- DRAG & DROP START EVENT on the target gadgets, receive the dropped data
;////////////////////////////////////////////////////////////////////////
ElseIf Event = #PB_Event_GadgetDrop
Select EventGadget()
Case #TargetFiles
Files$ = EventDropFiles()
Count = CountString(Files$, Chr(10)) + 1
For i = 1 To Count
AddGadgetItem(#TargetFiles, -1, StringField(Files$, i, Chr(10)))
Next i
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow:End
Ich hoffe es ist verständlich und möge man nachsichtig sein. Ich bin mi Lernprozess.