Hallo.
Ich habe folgendes Script programmiert:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <GuiListBox.au3>
#include <GUIComboBox.au3>
#include <GuiComboBoxEx.au3>
#include <MsgBoxConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $Serverstruktur_1, $hGUI2 = 9999, $MenuItem4, $hButton3 = 9999
[/autoit] [autoit][/autoit] [autoit]Global $Serverstruktur_1 = GUICreate("Serverstrukturverwaltung", 791, 640, 199, 119)
GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close")
Global $datei = GUICtrlCreateMenu("&Datei")
Global $MenuItem3 = GUICtrlCreateMenuItem("Beenden Alt + F4", $datei)
GUICtrlSetOnEvent(-1, "On_Close")
Global $ueber = GUICtrlCreateMenu("Ü&ber...")
Global $MenuItem4 = GUICtrlCreateMenuItem("Über", $ueber)
GUICtrlSetOnEvent(-1, "On_Button")
Global $Tab1 = GUICtrlCreateTab(-3, 34, 793, 585)
Global $TabSheet1 = GUICtrlCreateTabItem("Objekte anlegen")
GUICtrlSetState(-1,$GUI_SHOW)
Global $hCombo1 = GUICtrlCreateCombo("", 5, 115, 321, 455, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label1 = GUICtrlCreateLabel("Vorhandene Objekte:", 5, 96, 105, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label4 = GUICtrlCreateLabel("Neue Objektnummer:", 357, 168, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label5 = GUICtrlCreateLabel("Bezeichnung des neuen Objektes:", 357, 208, 167, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label6 = GUICtrlCreateLabel("Ort, in dem das neue Objekt liegt:", 357, 248, 161, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input1 = GUICtrlCreateInput("", 533, 168, 45, 22, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 5)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetTip(-1, "Hinweis meines Labels")
Global $Input2 = GUICtrlCreateInput("", 533, 208, 217, 22)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetTip(-1, "Hinweis meines Labels")
Global $Input3 = GUICtrlCreateInput("", 533, 248, 217, 22)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetTip(-1, "Hinweis meines Labels")
Global $Button1 = GUICtrlCreateButton("Neues Objekt erstellen", 533, 296, 217, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $TabSheet2 = GUICtrlCreateTabItem("Projekte anlegen")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label2 = GUICtrlCreateLabel("Vorhandene Objekte:", 5, 96, 105, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input4 = GUICtrlCreateInput("", 497, 120, 273, 22)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label7 = GUICtrlCreateLabel("Ausgewähltes Objekt:", 346, 120, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label8 = GUICtrlCreateLabel("Vorhandene Projekte:", 346, 170, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label9 = GUICtrlCreateLabel("Neue Projektnummer:", 346, 468, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label10 = GUICtrlCreateLabel("Neue Projektbezeichnung:", 346, 509, 128, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input6 = GUICtrlCreateInput("", 497, 468, 65, 22, $GUI_SS_DEFAULT_INPUT); Projektnummer
GUICtrlSetLimit(-1,
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input5 = GUICtrlCreateInput("", 497, 509, 273, 22, $GUI_SS_DEFAULT_INPUT); Projektbezeichnung
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $hCombo2 = GUICtrlCreateCombo("", 5, 115, 321, 455, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $hCombo3 = GUICtrlCreateCombo("", 497, 170, 273, 280, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Button2 = GUICtrlCreateButton("Neues Projekt erstellen", 497, 544, 273, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $TabSheet3 = GUICtrlCreateTabItem("Wartungsjahr anlegen")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label3 = GUICtrlCreateLabel("Vorhandene Objekte:", 5, 96, 105, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $hCombo4 = GUICtrlCreateCombo("", 5, 115, 321, 455, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $hCombo5 = GUICtrlCreateCombo("", 497, 170, 273, 280, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input7 = GUICtrlCreateInput("", 497, 120, 273, 22, $GUI_SS_DEFAULT_INPUT); Ausgewähltes Objekt
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input8 = GUICtrlCreateInput("", 497, 468, 38, 22, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER)); Wartungsjahr
GUICtrlSetLimit(-1, 4)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Button3 = GUICtrlCreateButton("Neues Wartungsjahr erstellen", 497, 519, 273, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label11 = GUICtrlCreateLabel("Neues Wartungsjahr:", 346, 468, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label12 = GUICtrlCreateLabel("Vorhandene Wartungsjahre:", 346, 170, 144, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label13 = GUICtrlCreateLabel("Ausgewähltes Objekt:", 346, 120, 104, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $TabSheet4 = GUICtrlCreateTabItem("Wartungsjahr für alle Objekte anlegen")
Global $Label14 = GUICtrlCreateLabel("Neues Wartungsjahr für alle Objekte:", 393, 147, 181, 21, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input9 = GUICtrlCreateInput("", 601, 147, 38, 22, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 4)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Button4 = GUICtrlCreateButton("Neues Wartungsjahr für alle Objekte anlegen", 392, 198, 265, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Input10 = GUICtrlCreateInput("ACHTUNG!!!", 32, 144, 321, 32, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 15, 800, 0, "Arial")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0xFF0000)
Global $Input11 = GUICtrlCreateInput("Mit diesem Programmsegment wrid für alle vorhandenen Objekte ein bestimmtes Leistungsjahr für die Wartung angelegt. Bereits vorhandene Wartungsjahre werden nicht überschrieben.", 32, 198, 321, 320, $ES_Multiline, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 15, 800, 0, "Arial")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0xFF0000)
GUISetState()
;Objekte
Global $sPathO = "D:\Test"
Global $sFilter = "*"
Global $iFlag = 2
Global $ordnerO = _FileListToArray($sPathO, $sFilter, $iFlag)
For $i = 1 To $ordnerO[0]
_GUICtrlComboBox_AddString($hCombo1, $ordnerO[$i])
_GUICtrlComboBox_AddString($hCombo2, $ordnerO[$i])
_GUICtrlComboBox_AddString($hCombo4, $ordnerO[$i])
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $hCombo2; Liste Projekte
GuiCtrlSetData($Input4,GuiCtrlRead($hCombo2))
$ListP = GUICtrlRead($Input4)
Local $sPathP = "D:\Test\" & $ListP & "\01 Projekte"
Local $sFilter = "*"
Local $iFlag = 2
_GUICtrlComboBoxEx_ResetContent(GUICtrlGetHandle($hCombo3))
$ordnerP = _FileListToArray($sPathP, $sFilter, $iFlag)
For $i = 2 To $ordnerP[0]
_GUICtrlComboBox_AddString($hCombo3, $ordnerP[$i])
Next
Case $hCombo4; Liste Wartungsjahre
GuiCtrlSetData($Input7,GuiCtrlRead($hCombo4))
$ListW = GUICtrlRead($Input7)
Local $sPathW = "D:\Test\" & $ListW & "\02 Wartungen\05 Leistungsjahre"
Local $sFilter = "*"
Local $iFlag = 2
_GUICtrlComboBoxEx_ResetContent(GUICtrlGetHandle($hCombo5))
$ordnerW = _FileListToArray($sPathW, $sFilter, $iFlag)
For $i = 2 To $ordnerW[0]
_GUICtrlComboBox_AddString($hCombo5, $ordnerW[$i])
Next
Case $Button1; Objekt anlegen
Local $Objektnr = GUICtrlRead($Input1)
Local $Bezeichnung = GUICtrlRead($Input2)
Local $Ort = GUICtrlRead($Input3)
If FileExists ($sPathO & "\" & $Objektnr & " " & "*" & ", " & "*") Then
MsgBox(16, "Fehler!", "Das Objekt wurde bereits angelegt!")
Else
DirCreate($sPathO & "\" & $Objektnr & " " & $Bezeichnung & "," & " " & $Ort)
DirCopy("C:\Users\test\Desktop\Neuer Ordner\Strukturvorlagen\Objektvorlage", $sPathO & "\" & $Objektnr & " " & $Bezeichnung & "," & " " & $Ort & "\", 1)
MsgBox(64, "Objekt", "Das Objekt wurde erfolgreich angelegt!")
EndIf
Case $Button2 ;Projekt anlegen $hCombo2
Local $Projnr = GUICtrlRead($Input6)
Local $PBezeichnung = GUICtrlRead($Input5)
If FileExists ($sPathP & $Projnr & " " & "*") Then
MsgBox(16, "Fehler!", "Das Projekt" & " " & $Projnr & " " & "wurde bereits angelegt!")
Else
DirCreate ($sPathP & "\" & $Projnr & " " & $PBezeichnung)
DirCopy("C:\Users\test\Desktop\Neuer Ordner\Strukturvorlagen\Projektvorlage", $sPathP & "\" & $Projnr & " " & $PBezeichnung & "\", 1)
MsgBox(64, "Projektnummer", "Die Projektnummer " & $Projnr & " " & "wurde erfolgreich angelegt!")
EndIf
Case $Button3 ;Wartungsjahr anlegen $hCombo4
Local $Wartungsjahr = GUICtrlRead($Input8)
If FileExists ($sPathW & "\" & $Wartungsjahr) Then
MsgBox(16, "Fehler!", "Das Wartungsjahr wurde bereits angelegt!")
Else
DirCreate ($sPathW & "\" & $Wartungsjahr)
DirCopy("C:\Users\test\Desktop\Neuer Ordner\Strukturvorlagen\Leistungsjahrvorlage\", $sPathW & "\" & $Wartungsjahr & "\", 1)
MsgBox(64, "Wartungsjahr", "Das Wartungsjahr" & " " & $Wartungsjahr & " " & "wurde erfolgreich angelegt!")
EndIf
[/autoit] [autoit][/autoit] [autoit]Case $Button4; Wartungsjahre für alle Objekte anlegen
Local $WartungsjahrA = GUICtrlRead($Input9)
Local $sPathA = "D:\Test"
Local $sFilter = "*"
Local $iFlag = 2
Local $ordnerA = _FileListToArray($sPathO, $sFilter, $iFlag)
For $i = 1 To $ordnerA[0]
DirCreate($sPathA & "\" & $ordnerA[$i] & "\02 Wartungen\05 Leistungsjahre" & "\" & $WartungsjahrA)
DirCopy("C:\Users\test\Desktop\Neuer Ordner\Strukturvorlagen\Leistungsjahrvorlage\", $sPathA & "\" & $ordnerA[$i] & "\02 Wartungen\05 Leistungsjahre\" & $WartungsjahrA & "\" , 1)
Next
MsgBox(64, "Wartungsjahre für alle Objekte", "Das Wartungsjahr" & " " & $WartungsjahrA & " " & "wurde für alle vorhandenen Objekte erfolgreich angelegt!")
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
Func gui2()
$hGUI2 = GUICreate("Über...", 615, 438, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close")
$Pic1 = GUICtrlCreatePic("S:\08 Vorlagen\Ressourcen\test.jpg", 159, 48, 297, 113)
$hButton3 = GUICtrlCreateButton("Schließen", 251, 368, 113, 41)
GUICtrlSetOnEvent(-1, "On_Close")
$Label1 = GUICtrlCreateLabel("TEST" & @CRLF & "TEST" & @CRLF & "TEST", 157, 200, 300, 153)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUISetState()
EndFunc
Func On_Close()
Switch @GUI_WINHANDLE
Case $Serverstruktur_1
Exit
Case $hGUI2
GUIDelete($hGUI2)
GUICtrlSetState($MenuItem4, $GUI_ENABLE)
EndSwitch
EndFunc
Func On_Button()
Switch @GUI_CTRLID
Case $MenuItem4
GUICtrlSetState($MenuItem4, $GUI_DISABLE)
gui2()
EndSwitch
EndFunc
Und zwar habe ich zuletzt im Menü-->Über mit einem 2. Gui ein Fenster erstellt, damit ich das Fenster per Button "Schließen" beenden kann.
Leider funktioniert der Rest des Scripts nicht mehr.
Vielleicht kann mir jemand helfen. Ich denke das alles etwas unübersichtlich ist, das liegt daran, dass ich Anfänger bin.
Zudem bekomme ich es nicht hin, eine Abfrage für die für die Inputboxen: Neue Objektnummer, Bezeichnung des neuen Objektes, Ort, in dem das neue Objekt liegt, zu schreiben, dass wenn die Inputbox leer sind es eine Fehlermeldung gibt und das Objekt dann nicht angelegt wird.
Über Eure Hilfe würde ich mich sehr freuen, ich komme alleine einfach nicht weiter!
Gruß
Sirius