Ich habe jetzt mal etwas zusammen gestrichen.
Das 2 Fenster wird durch "Veronica Themes installieren" im Menü gestartet.
Dort kann man mit Abbrechen das 2 Fenster wieder schließen.
Betätigt man nun "Verbinden" tritt der Effekt ein.
Code: Alles auswählen
UsePNGImageDecoder()
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
#Window_1
#Window_2
EndEnumeration
;}
;{ Gadgets
Enumeration
#IPAddress_0
#Text_1
#Button_1
#Button_2
#Button_3
#Button_4
#String_1
#Editor_1
#Editor_2
#Editor_3
#Editor_11
#HImage_1
#Text_2
#Text_3
#Text_4
#Text_5
#Check_1
#Progress
#VImage_1
#VImage_2
#VText_1
#VText_2
#VText_3
#VText_4
#VEditor_1
#VButton_1
#VButton_2
#VButton_3
EndEnumeration
DataSection
UdhcpdStart :
IncludeBinary "c:\HF_Helper\Data\udhcpd.orig"
UdhcpdEnd :
SmbStart :
IncludeBinary "c:\HF_Helper\Data\smb.conf"
SmbEnd :
VeronicaStart :
IncludeBinary "c:\HF_Helper\Data\veronica-0.5.4-bin.tar.gz"
VeronicaEnd :
EndDataSection
Global IniFile.s = ""
Global IP_Adr.s = ""
Global Log = 0
Global Login.s = "root"
Global Passwort.s = "root"
Global Ziel.s
Global Ser_Nr.s = ""
Global Install.s = "Installieren"
Global Deinstall.s = "Deinstallieren"
Global Funktion.s = ""
Global Dim Telnet_Befehl.s(5)
Global Dim Telnet_Ergebnis.s(5)
Global IM
Global Befehle.l
Global dt = 100
Global Theme_File.s
Global Theme_Path.s
Global Theme_Name.s
Global Theme_Ziel.s
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 1, 1, 500, 500, "Hifidelio Helper", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_TitleBar)
; hier beginnt das Erstellen des Menüs...
If CreateMenu(0, WindowID(0))
MenuTitle("Funktionen")
MenuItem(1, "Musikordner freigeben")
MenuItem(2, " Veronica 0.5.4 installieren")
MenuItem(3, " Veronica 0.5.4 konfigurieren")
MenuItem(4, " Veronica Themes installieren")
MenuBar()
; hier wird der Abgrenzungsbalken eingefügt
MenuItem(96, "Hifidelio Standby")
MenuItem(97, " Hifidelio Neustart")
MenuItem(98, " Hifidelio Ausschalten")
MenuItem(99, " Beenden")
MenuTitle("Admin Funktionen")
MenuItem(101, "Update auf Pro")
MenuItem(102, " IPAdressen zurücksetzen")
MenuItem(103, " Musik retten")
EndIf
If CreateGadgetList(WindowID(#Window_0))
;immer Sichtbar
IPAddressGadget(#IPAddress_0, 280, 10, 205, 25)
TextGadget(#Text_1, 225, 13, 54, 14, "IP Adresse")
ButtonGadget(#Button_1, 15, 5, 70, 30, "Verbinden")
CheckBoxGadget(#Check_1, 5, 465, 90, 14, "Debugfenster")
TextGadget(#Text_3, 390, 465, 70, 14, "Seriennummer")
TextGadget(#Text_4, 460, 465, 35, 15, "", #PB_Text_Border)
TextGadget(#Text_2, 102, 13, 54, 14, "Passwort")
StringGadget(#String_1, 150, 10, 61, 20, "root")
;Textfeld oben
EditorGadget(#Editor_1, 15, 40, 380, 100, #PB_Editor_ReadOnly)
HideGadget(#Editor_1, 1)
;Schalter oben
ButtonGadget(#Button_2, 410, 75, 70, 30, "Oben")
HideGadget(#Button_2, 1)
;Textfeld unten
EditorGadget(#Editor_2, 15, 160, 380, 100, #PB_Editor_ReadOnly)
HideGadget(#Editor_2, 1)
;Schalter unten
ButtonGadget(#Button_3, 410, 195, 70, 30, "Unten")
HideGadget(#Button_3, 1)
;Schalter ausführen
ButtonGadget(#Button_4, 200, 440, 100, 30, "Installieren")
HideGadget(#Button_4, 1)
;Editorfeld
EditorGadget(#Editor_3, 15, 40, 470, 385)
HideGadget(#Editor_3, 1)
;Bilder laden und anpassen
LoadImage(0, GetPathPart(ProgramFilename()) + "\hf_Offline.png")
;ResizeImage(0, 350,233,#PB_Image_Smooth)
LoadImage(1, GetPathPart(ProgramFilename()) + "\hf_Online.png")
;ResizeImage(1, 350,233,#PB_Image_Smooth)
ImageGadget(#HImage_1, 75, 100, 350, 300, ImageID(0))
;Prozessgadget
Ergebnis = ProgressBarGadget(#Progress, 5, 5, 10, 450, 0, 110, #PB_ProgressBar_Vertical)
HideGadget(#Progress, 1)
EndIf
EndIf
EndProcedure
Procedure OpenWindow_Window_1()
If OpenWindow(#Window_1, 520, 1, 450, 500, "Hifidelio Debug", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_1))
;Editorfeld
EditorGadget(#Editor_11, 15, 15, 420, 470)
HideGadget(#Editor_11, 0)
EndIf
EndIf
EndProcedure
Procedure OpenWindow_Window_2()
If OpenWindow(#Window_2, 367, 57, 600, 600, "Veronica Themes", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_2))
ImageGadget(#VImage_1, 15, 50, 275, 275, 0, #PB_Image_Border)
ImageGadget(#VImage_2, 310, 50, 275, 275, 0, #PB_Image_Border)
TextGadget(#VText_1, 15, 15, 570, 15, "Quellpfad")
TextGadget(#VText_2, 15, 30, 570, 15, "Computer")
TextGadget(#VText_3, 15, 525, 570, 15, "Zielpfad")
TextGadget(#VText_4, 15, 540, 400, 15, "Hifidelio")
EditorGadget(#VEditor_1, 15, 340, 570, 180, #PB_Editor_ReadOnly)
SetGadgetText(#VEditor_1, "Theme.xml")
ButtonGadget(#VButton_1, 75, 555, 100, 25, "Theme suchen")
ButtonGadget(#VButton_2, 200, 555, 100, 25, "Abbrechen")
ButtonGadget(#VButton_3, 325, 555, 100, 25, "Theme installieren")
OptionGadget(10, 450, 540, 150, 20, "In Standardverzeichnis")
OptionGadget(11, 450, 560, 150, 20, "In eigenes Verzeichnis")
While WindowEvent() : Wend
EndIf
EndIf
EndProcedure
Procedure Programmstart()
;Einstellungen laden-------------------------------------------------------------------------------
IniFile.s = GetPathPart(ProgramFilename()) + "\HF_Helper.ini"
If OpenPreferences(IniFile.s)
PreferenceGroup("Global")
IP_Adr.s = ReadPreferenceString("IP_Adr", "192.168.178.001")
Passwort.s = ReadPreferenceString("Passwort", "root")
ClosePreferences()
Else
IP_Adr.s = "192.168.178.001"
CreatePreferences(IniFile.s)
PreferenceGroup("Global")
WritePreferenceString("IP_Adr", IP_Adr.s)
WritePreferenceString("Passwort", Passwort.s)
ClosePreferences()
EndIf
SetGadgetState(#IPAddress_0, MakeIPAddress(Val(StringField(IP_Adr, 1, ".")), Val(StringField(IP_Adr, 2, ".")), Val(StringField(IP_Adr, 3, ".")), Val(StringField(IP_Adr, 4, "."))))
SetGadgetText(#String_1, Passwort.s)
EndProcedure
Procedure Programmende()
CreatePreferences(IniFile.s)
PreferenceGroup("Global")
WritePreferenceString("IP_Adr", GetGadgetText(#IPAddress_0))
WritePreferenceString("Passwort", GetGadgetText(#String_1))
ClosePreferences()
CloseWindow(#Window_0)
End
EndProcedure
Procedure Windowclean()
HideGadget(#Button_2, 1)
HideGadget(#Button_3, 1)
HideGadget(#Button_4, 1)
HideGadget(#Editor_1, 1)
HideGadget(#Editor_2, 1)
HideGadget(#Editor_3, 1)
HideGadget(#HImage_1, 1)
EndProcedure
Procedure Telnet()
EndProcedure
Procedure Seriennummer()
HideGadget(#HImage_1, 0)
EndProcedure
Procedure Musikordner()
EndProcedure
Procedure Musikretten()
EndProcedure
Procedure IP_zuruecksetzen()
EndProcedure
Procedure Veronica_Install()
EndProcedure
Procedure Veronica_Config()
EndProcedure
Procedure Veronica_Themes()
OpenWindow_Window_2()
EndProcedure
Procedure Themes_laden()
EndProcedure
Procedure Theme_speichern()
EndProcedure
Procedure Standby()
EndProcedure
Procedure Neustart()
EndProcedure
Procedure Ausschalten()
EndProcedure
OpenWindow_Window_0()
Programmstart()
;{- Event loop
Ziel.s = "\\" + IP_Adr.s + "\import\"
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
EndIf
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #IPAddress_0
IP_Adr.s = GetGadgetText(#IPAddress_0)
Ziel.s = "\\" + IP_Adr.s + "\import\"
ElseIf EventGadget = #Text_1
ElseIf EventGadget = #Button_1
Seriennummer()
ElseIf EventGadget = #Button_2
If Funktion.s = "Musikordner" : Funktion.s = "Muster" : Musikordner() : EndIf
If Funktion.s = "Musik retten" : Musikretten() : EndIf
If Funktion.s = "IP löschen" : IP_zuruecksetzen() : EndIf
If Funktion.s = "Veronica" : Veronica_Install() : EndIf
If Funktion.s = "Veronica Config" : Veronica_Config() : EndIf
ElseIf EventGadget = #Button_3
If Funktion.s = "Musikordner" : Funktion.s = "HF" : Musikordner() : EndIf
ElseIf EventGadget = #Button_4
If Funktion.s = "HF" Or Funktion.s = "Muster" : Funktion.s = "Install" : Musikordner() : EndIf
If Funktion.s = "Veronica Config" : Funktion.s = "Veronica Configi" : Veronica_Config() : EndIf
ElseIf EventGadget = #String_1
Passwort = GetGadgetText(#String_1)
ElseIf EventGadget = #Text_2
ElseIf EventGadget = #Text_3
ElseIf EventGadget = #Text_4
ElseIf EventGadget = #Check_1
If GetGadgetState(#Check_1) = 1
OpenWindow_Window_1()
Log = 1
Else
CloseWindow(#Window_1)
Log = 0
EndIf
ElseIf EventGadget = #HImage_1
ElseIf EventGadget = #VButton_1
Themes_laden()
ElseIf EventGadget = #VButton_2
CloseWindow(#Window_2)
ElseIf EventGadget = #VButton_3
EndIf
; ////////////////////////
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case 102 ; Sub >> Vergebene IPAdressen zuücksetzen
IP_zuruecksetzen()
Case 103 ; Sub >> Musik retten
Musikretten()
Case 1 ; Sub >> Musikordner freigeben
Musikordner()
Case 2 ; Sub >> Veronica 5.4 installieren
Veronica_Install()
Case 3 ; Sub >> Veronica 5.4 konfigurieren
Veronica_Config()
Case 4 ; Sub >> Veronica Themes installieren
Veronica_Themes()
Case 96 ; Hifidelio Standby
Standby()
Case 97 ; Hifidelio Neustart
Neustart()
Case 98 ; Hifidelio Ausschalten
Ausschalten()
Case 99 ; Ende
Programmende()
EndSelect
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
Programmende()
EndIf
If EventWindow = #Window_2
CloseWindow(#Window_2)
EndIf
EndSelect
ForEver
;;}