- Offizieller Beitrag
da hat der ende-tag für autoit und spoiler gefehlt!
da hat der ende-tag für autoit und spoiler gefehlt!
Danke. Ich hab aber die ganzen Funktionen noch reingestellt, wo sind die geblieben.
Wer kann die FTP-Funktion für das Programm schreiben.
Ich stell das Skript nochmal rein, diesmal mit allem
#cs ----------------------------------------------------------------------------
AutoIt-Version: v3.2.0.1
Programmname: Skript-Loader für IOM
Version: ...
Autor: Manuel Kübler
Mail: [email='mk-software@gmx.de'][/email]
Copyrigtht: © Manuel Kübler 2006
Skript Function:
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Todo:
[/autoit] [autoit][/autoit] [autoit]; - FTP-Funktion
; -> Skripte auf FTP hochladen
; -> Skripte von FTP in Temp-Ordner herunterladen
; - Offen
; - INI-Dateien
; -> Jedes Programm erhält eine individuelle INI-Datei
; -> Programm-Name, Autor, Kategorie, ...
; -> Für INI-Aufbau wird ein extra Programm entwickelt
; - Manuel Kübler (INI-Aufbau), Offen
; - Mail-Funktion
; -> Wenn Skript nicht existiert, wird der Autor informiert.
; -> Autor informiert Benutzer wenn Skript verfügbar ist.
; - Manuel Kübler
; Done:
[/autoit] [autoit][/autoit] [autoit]; - Bug in KategorieGUI
; -> Buttons anklickbar machen
; - Manuel Kübler & peethebee (Done.)
; - Programm-Liste
; -> Liste über alle integrierten Programme
; - Manuel Kübler (Done.)
; ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1)
; ----------------------------------------
; Includes
; ----------------------------------------
#include <GUIConstants.au3>
#include <INet.au3>
; ----------------------------------------
; Variablen-Deklarationen
; ----------------------------------------
Global $File = @TempDir & "\Programme.iom"
Global $Target_IOM = RegRead("HKLM\SOFTWARE\PC Magazin\Install-O-Matic", "HDD Path")
; ----------------------------------------
; Mail
; ----------------------------------------
$Mail_To = "mk-software@gmx.de"
$Mail_Subject =
$Mail_Body =
If @OSVersion <> "Win_xp" Then
If MsgBox(16, "Nicht unterstützte Windows-Version", "Der Skript-Loader für die Install-O-Matic wurde für Microsoft Windows XP entwickelt und getestet. Deshalb wird nicht empfohlen, es unter diesem Betriebssystem (" & @OSVersion & ") zu starten.") <> 6 Then Exit
EndIf
If Not FileExists($Target_IOM) Then
If MsgBox(16, "IOM konnte nicht gefunden werden", "Bitte kopieren Sie Install-O-Matic mit der Hilfe des Install-O-Matic Manager 2.00 von der PC Magazin 05/2006 DVD auf Ihre Festplatte.") <> 6 Then Exit
EndIf
; ============================================================================
; ============================================================================
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; MainGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$mainGUI = GuiCreate("Skript-Loader für IOM", 276, 113)
GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
;
; Menü
; Datei
$gui_mnu_file = GUICtrlCreateMenu("&Datei")
; Beenden
$gui_mnu_file_close = GUICtrlCreateMenuitem("Beenden", $gui_mnu_file)
GUICtrlSetOnEvent(-1, "_close")
; Hilfe
$gui_mnu_help = GUICtrlCreateMenu("&Hilfe")
; Welche Programme wurden bereits integriert?
$gui_mnu_help_programmliste = GUICtrlCreateMenuitem("Welche Programme wurden bereits integriert?", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_programmliste_open")
; Credits
$gui_mnu_help_credits = GUICtrlCreateMenuitem("Credits", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_credits")
; Info
$gui_mnu_help_info = GUICtrlCreateMenuitem("Info", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_info")
;
; BUTTONS erzeugen und Klick-Ereignisse den Funktionen zuordnen
$download = GUICtrlCreateButton("Skripte downloaden", 10, 20, 120, 30)
GUICtrlSetOnEvent($download, "_download")
$upload = GUICtrlCreateButton("Skripte uploaden", 143, 20, 120, 30)
GUICtrlSetOnEvent($upload, "_upload")
; Fenster anzeigen
GUISetState(@SW_SHOW, $mainGUI)
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programm-ListeGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$ProgrammlisteGUI = GuiCreate("Welche Programme wurden bereits integriert?", 400, 383)
GUISetOnEvent($GUI_EVENT_CLOSE, "_programmliste_close")
$Programmliste_programm_liste = GUICtrlCreateList("", 20, 20, 360, 300)
_programmliste_scan_programs()
$Programmliste_aktualisieren = GUICtrlCreateButton("Ak&tualisieren", 25, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_aktualisieren, "_programmliste_scan_programs")
$Programmliste_close = GUICtrlCreateButton("Schließen", 225, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_close, "_programmliste_close")
; Fenster anzeigen
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
; ============================================================================
; ============================================================================
; ----------------------------------------
; Funktionen
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; Main-Funktionen
; ----------------------------------------
Func _download()
_disablen()
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu integrierenden Programms ein.")
; Prüfe ob Programmname-Datei existiert, wenn ja lösche Datei und erstelle neu, wenn nein, erstelle neu
If FileExists($File) Then
FileDelete($File)
FileWrite($File, $Name_Open)
Else
FileWrite($File, $Name_Open)
EndIf
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(4, $Programmname & "-Skript downloaden?", "Möchten Sie das Skript für " & $Programmname & " vom FTP-Server herunterladen?") = 6 Then
_FTP()
Else
; Wenn Skript im FTP nicht existiert, wird der Autor informiert
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Prüfe ob Programmname existiert
If FileExists($Programmname)
; Hier kommt der Quelltext für den Download rein
Else
; Skript wurde nicht gefunden
If MsgBox(64, $Programmname & "-Skript nicht gefunden", "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden." & @CRLF & "Der Autor wurde über das fehlende Skript informiert. Er schickt ihnen eine E-Mail wenn das Skript verfügbar ist.") Then
; Autor wird informiert
_INetMail($Mail_To, $Programmname & "-Skript wurde nicht gefunden", "Hallo Herr Kübler," & @CRLF & "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden. Könnten Sie es bitte auf den FTP-Server packen.")
EndIf
EndIf
; Hier kommt der FTP-Quelltext rein
If FileExists(@TempDir & "\*.au3") Then
; Lese Programmname
$Programmname = FileReadLine($File, 1)
$var = FileSelectFolder("Wo möchten Sie das Skript für " & $Programmname & " speichern.", "", 1 + 2)
If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & 'Skript-Ort: "' & $var & '"') Then
FileDelete($File)
EndIf
EndIf
_enablen()
EndFunc ;==>_download
Func _upload()
_disablen()
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu uploadenden Programms ein.")
If MsgBox(4, $Name_Open & " uploaden", 'Möchten Sie wirklich das Skript für "' & $Name_Open & '" auf den FTP-Server hochladen?') = 6 Then
$Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Name_Open & '" das upgeloadet werden sollte.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 )
_FTP()
If @error Then
TrayTip("FTP-Verbindung", "Die Verbindung zum FTP-Server konnte nicht hergestellt werden.", 5, 3)
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
$FTP_Target = _FTPMakeDir($FTP_Server, $Programmname)
; Hier kommt der FTP-Quelltext rein
EndIf
MsgBox(320, "Skripte uploaden", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_upload
Func _credits()
_disablen()
MsgBox(320, "Credits", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_credits
Func _info()
_disablen()
MsgBox(320, "Info", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_info
Func _close()
Exit
EndFunc ;==>_close
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programmliste-Funktionen
; ----------------------------------------
Func _programmliste_open()
GUISetState(@SW_SHOW, $ProgrammlisteGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_programmliste_open
Func _programmliste_close()
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
EndFunc ;==>_programmliste_close
; Funktion von Install-O-Matic Manager 2.00 übernommen
Func _programmliste_scan_programs()
$items = ""
; Suche nach allen Dateien und Verzeichnissen
$search = FileFindFirstFile($Target_IOM & "*")
; Überprüfen, ob die Suche erfolgreich war
If $search = -1 Then
MsgBox(0, "Fehler", "Es wurde keine Programme mehr in der Install-O-Matic gefunden...")
EndIf
While 1
$result = FileFindNextFile($search)
If @error Then ExitLoop
If FileExists($Target_IOM & $result & "\install_iom_anwendungen.au3") Or FileExists($Target_IOM & $result & "\install_iom_essentials.au3") Or FileExists($Target_IOM & $result & "\install_iom_sicherheit.au3") Or FileExists($Target_IOM & $result & "\install_iom_sonstiges.au3") Then
$items &= $result & "|"
EndIf
WEnd
; Suchhandle schließen
FileClose($search)
$items = StringTrimRight($items, 1)
GUICtrlSetData($Programmliste_programm_liste, "") ; Liste leeren...
GUICtrlSetData($Programmliste_programm_liste, $items) ; ...und neu befüllen
EndFunc ;==>_programmliste_scan_programs
; ----------------------------------------------------------------------------
; ----------------------------------------
; FTP-Funktionen
; ----------------------------------------
Func _FTP()
; Baue FTP-Verbindung auf
$FTP_Open = _FTPOpen("Skript-Loader für IOM", 1, '', '', 0)
; Baue Verbdindung zum Server auf
$Server = ""
$User = ""
$Pass = ""
$SubDir = ""
$Port = "21"
$FTP_Server = _FTPConnect ($FTP_Open, $Server, $User, $Pass, $Port)
EndFunc ;==>_FTP
; ----------------------------------------------------------------------------
; ----------------------------------------
; Disable & Enable-Funktionen
; ----------------------------------------
Func _disablen()
GUISetState($download, $GUI_DISABLE)
GUISetState($upload, $GUI_DISABLE)
EndFunc ;==>_disablen
Func _enablen()
GUICtrlSetState($download, $GUI_ENABLE)
GUICtrlSetState($upload, $GUI_ENABLE)
EndFunc ;==>_enablen
; ============================================================================
While 1
sleep(500)
WEnd
Der FTP-Quelltext muss bei der Funktion _FTP stehen.
Die INI-Sache wurde speziell von BlackJack programmiert. Duch diese Funktion kann ich die Skripte verwalten.
In dieser Variante sind die Sachen von BlackJack noch nicht oder nur teilweise eingebaut
Gelöscht hab ich nichts!
Ich stell jetzt mal eine aktuelle Version rein:
#cs ----------------------------------------------------------------------------
AutoIt-Version: v3.2.0.1
Programmname: Skript-Loader für IOM
Version: ...
Idee Manuel Kübler
Programmierer: Manuel Kübler (GUIs, Funktionen, Mail)
BlackJack (FTP, Info, Credits, INI-Creator)
huggy (Online-Datenbank)
peethebee (Info, Credits, Programm-Liste)
Mail: [email='mk-software@gmx.de'][/email]
Copyrigtht: © Manuel Kübler 2006
Skript Function:
...
Danke an BlackJack, huggy, peethebee!
----------------------------------------------------------------------------
Todo:
- Integration des IOM-Skriptes
-> Fragen nach dem Download, ob man das Skript gleich integrieren will
-> Install-O-Matic Manager 2.00 wird gestartet
- Manuel Kübler
- Info-Funktion
-> Info-Funktion von Galenda übernehmen
-> Anpassen an den Skript-Loader
- BlackJack
- FTP-Funktion
-> Skripte auf FTP hochladen (Done.)
-> Skripte von FTP in Temp-Ordner herunterladen
- BlackJack
- INI-Dateien
-> Jedes Programm erhält eine individuelle INI-Datei
-> Programm-Name, Autor, Kategorie, ...(Done.)
-> Für INI-Aufbau wird ein extra Programm entwickelt (Done. by BlackJack)
-> Ohne INI-Datei kein Upload (siehe INI-Datei erstellen)
- Manuel Kübler (INI-Aufbau) (Done. by BlackJack), Offen
Done:
- INI-Datei erstellen
-> Integrieren des Plug-Ins INI-Creator
-> Menü-Eintrag erstellen
-> Ohne INI-Datei kein Upload
- BlackJack (Done.)
- Credits
-> Credits-Funktion von Galenda übernommen
-> Angepasst an den Skript-Loader
- BlackJack (Done.)
- Mail-Funktion
-> Wenn Skript nicht existiert, wird der Autor informiert.
-> Autor informiert Benutzer wenn Skript verfügbar ist.
- Manuel Kübler (Done.) !! Noch nicht verfügbar, erst wenn Func _download() steht !!
- Programm-Liste
-> Liste über alle integrierten Programme
- Manuel Kübler (Done.)
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1)
; ----------------------------------------
; Includes
; ----------------------------------------
#Include <Array.au3>
#include <Color.au3>
#include <FTP.au3>
#include <GUIConstants.au3>
;~ #include <INet.au3>
; ----------------------------------------
; Variablen-Deklarationen
; ----------------------------------------
Global $File = @TempDir & "Programme.iom"
Global $gui_dmy_1 = GUICtrlCreateDummy() ; Dummy (v.a. für AboutBox)
Global $Target_IOM = RegRead("HKLMSOFTWAREPC MagazinInstall-O-Matic", "HDD Path")
; ----------------------------------------
; Mail
; ----------------------------------------
;~ $Mail_To = "mk-software@gmx.de"
;~ $Mail_Subject =
;~ $Mail_Body =
If @OSVersion <> "WIN_XP" Then
If MsgBox(16, "Nicht unterstützte Windows-Version", "Der Skript-Loader für die Install-O-Matic wurde für Microsoft Windows XP entwickelt und getestet. Deshalb wird nicht empfohlen, es unter diesem Betriebssystem (" & @OSVersion & ") zu starten.") <> 6 Then Exit
EndIf
If Not FileExists($Target_IOM) Then
If MsgBox(16, "IOM konnte nicht gefunden werden", "Bitte kopieren Sie Install-O-Matic mit der Hilfe des Install-O-Matic Manager 2.00 von der PC Magazin 05/2006 DVD auf Ihre Festplatte.") <> 6 Then Exit
EndIf
; ============================================================================
; ============================================================================
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; MainGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$mainGUI = GuiCreate("Skript-Loader für IOM", 276, 113)
GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
;
; Menü
; Datei
$gui_mnu_file = GUICtrlCreateMenu("&Datei")
; INI-Datei erstellen
$gui_mnu_file_close = GUICtrlCreateMenuitem("INI-Datei erstellen", $gui_mnu_file)
GUICtrlSetOnEvent(-1, "_ini")
;
$gui_mnu_file_close = GUICtrlCreateMenuitem("", $gui_mnu_file)
; Beenden
$gui_mnu_file_close = GUICtrlCreateMenuitem("Beenden", $gui_mnu_file)
GUICtrlSetOnEvent(-1, "_close")
; Hilfe
$gui_mnu_help = GUICtrlCreateMenu("&Hilfe")
; Welche Programme wurden bereits integriert?
$gui_mnu_help_programmliste = GUICtrlCreateMenuitem("Welche Programme wurden bereits integriert?", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_programmliste_open")
;
$gui_mnu_help_programmliste = GUICtrlCreateMenuitem("", $gui_mnu_help)
; Credits
$gui_mnu_help_credits = GUICtrlCreateMenuitem("Credits", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_credits")
; Info
$gui_mnu_help_info = GUICtrlCreateMenuitem("Info", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_info")
;
; BUTTONS erzeugen und Klick-Ereignisse den Funktionen zuordnen
$download = GUICtrlCreateButton("Skripte downloaden", 10, 20, 120, 30)
GUICtrlSetOnEvent($download, "_download")
$upload = GUICtrlCreateButton("Skripte uploaden", 143, 20, 120, 30)
GUICtrlSetOnEvent($upload, "_upload")
; Fenster anzeigen
GUISetState(@SW_SHOW, $mainGUI)
; ----------------------------------------------------------------------------
; ----------------------------------------
; INI-CreatorGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$INIGUI = GuiCreate("INI-Creator", 276, 200)
GUISetOnEvent($GUI_EVENT_CLOSE, "_ini_close")
$Programmname_label = GUICtrlCreateLabel("Programm-Name:", 20, 23)
$Programmname_input = GUICtrlCreateInput("", 110, 20, 150)
$Kategorie_label = GUICtrlCreateLabel("Kategorie:", 20, 63)
$Kategorie_input = GUICtrlCreateCombo ("Anwendungen", 110, 60, 150)
GUICtrlSetData(-1,"System Essentials|Sicherheit|Sonstiges", "Anwendungen")
$Benutzer_label = GUICtrlCreateLabel("Autor:", 20, 103)
$Benutzer_input = GUICtrlCreateInput("", 110, 100, 150)
$save = GUICtrlCreateButton("Speichern", 20, 140, 100, 30)
GUICtrlSetOnEvent($save, "_ini_save")
$abbrechen = GUICtrlCreateButton("Abbrechen", 133, 140, 100, 30)
GUICtrlSetOnEvent($abbrechen, "_ini_abbrechen")
; Fenster anzeigen
GUISetState(@SW_HIDE, $INIGUI)
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programm-ListeGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$ProgrammlisteGUI = GuiCreate("Welche Programme wurden bereits integriert?", 400, 383)
GUISetOnEvent($GUI_EVENT_CLOSE, "_programmliste_close")
$Programmliste_programm_liste = GUICtrlCreateList("", 20, 20, 360, 300)
_programmliste_scan_programs()
$Programmliste_aktualisieren = GUICtrlCreateButton("Ak&tualisieren", 25, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_aktualisieren, "_programmliste_scan_programs")
$Programmliste_close = GUICtrlCreateButton("Schließen", 225, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_close, "_programmliste_close")
; Fenster anzeigen
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
; ============================================================================
; ============================================================================
; ----------------------------------------
; Funktionen
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; Main-Funktionen
; ----------------------------------------
Func _download()
_disablen()
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu integrierenden Programms ein.")
; Prüfe ob Programmname-Datei existiert, wenn ja lösche Datei und erstelle neu, wenn nein, erstelle neu
If FileExists($File) Then
FileDelete($File)
FileWrite($File, $Name_Open)
Else
FileWrite($File, $Name_Open)
EndIf
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(4, $Programmname & "-Skript downloaden?", "Möchten Sie das Skript für " & $Programmname & " vom FTP-Server herunterladen?") = 6 Then
_FTP()
EndIf
; Wenn Skript im FTP nicht existiert, wird der Autor informiert
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Prüfe ob Programmname existiert
If FileExists($Programmname) Then
; Hier kommt der Quelltext für den Download rein
Else
; Skript wurde nicht gefunden
If MsgBox(64, $Programmname & "-Skript nicht gefunden", "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden." & @CRLF & "Der Autor wurde über das fehlende Skript informiert. Er schickt Ihnen eine E-Mail wenn das Skript verfügbar ist.") Then
; Autor wird informiert
;~ _INetMail($Mail_To, $Programmname & "-Skript wurde nicht gefunden", "Hallo Herr Kübler," & @CRLF & "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden. Könnten Sie es bitte auf den FTP-Server packen.")
EndIf
EndIf
; Hier kommt der Quelltext für den Download rein
If FileExists(@TempDir & "*.au3") Then
; Lese Programmname
$Programmname = FileReadLine($File, 1)
$var = FileSelectFolder("Wo möchten Sie das Skript für " & $Programmname & " speichern.", "", 1 2)
FileCopy(@TempDir & "*.au3", $var)
If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & 'Skript-Ort: "' & $var & '"') Then
FileDelete($File)
FileDelete(@TempDir & "*.au3")
EndIf
EndIf
_enablen()
EndFunc ;==>_download
Func _upload()
_disablen()
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu uploadenden Programms ein.")
; Schreibe Programmename in die IOM-Datei
If FileExists($File) Then
FileDelete($File)
FileWrite($File, $Name_Open)
Else
FileWrite($File, $Name_Open)
EndIf
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(4, $Programmname & " uploaden", 'Möchten Sie wirklich das Skript für "' & $Programmname & '" auf den FTP-Server hochladen?') = 6 Then
_FTP()
If @error Then
TrayTip("FTP-Verbindung", "Die Verbindung zum FTP-Server konnte nicht hergestellt werden.", 5, 3)
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Erstelle Verzeichnis
$FTP_Target = _FTPMakeDir($FTP_Server, $Programmname)
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Lade Skript-Datei hoch
$Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das upgeloadet werden sollte.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 2 )
TrayTip("Upload", "Lade Skript hoch", 2000, 1)
_FTPPutFile($FTP_Server, $Target_Scripts, $Programmname & "" & $Programmname & ".au3")
; INI-Datei hochladen
$Target_INI = FileOpenDialog('Bitte wählen Sie die Konfigurations-Datei für das Skript "' & $Target_Scripts & '"', @MyDocumentsDir, "Konfigurations-Dateien für IOM-Skripte (*.ini)", 1 2 )
If @error Then
If MsgBox(16, "Keine INI-Datei ausgewählt", "Bitte wählen Sie eine INI-Datei aus. Ohne INI-Datei kann das Skript nicht hochgeladen werden.") Then _ini()
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
TrayTip("Upload", "Lade Konfigurations-Datei hoch", 2000, 1)
_FTPPutFile($FTP_Server, $Target_INI, $Programmname & ".ini")
EndIf
; FTP-Verbindung schließen
_FTPClose($FTP_Open)
EndIf
EndIf
_enablen()
EndFunc ;==>_upload
Func _info()
_disablen()
MsgBox(320, "Info", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_info
Func _close()
Exit
EndFunc ;==>_close
; ----------------------------------------------------------------------------
; ----------------------------------------
; INICreator-Funktionen
; ----------------------------------------
Func _ini()
GUISetState(@SW_SHOW, $INIGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_ini
Func _ini_close()
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $INIGUI)
EndFunc ;==>_ini_close
Func _ini_save()
$Target_Config = FileSaveDialog("Erstellung von Konfigurations-Dateien für IOM-Skripte.", @MyDocumentsDir, "Konfigurations-Dateien für IOM-Skripte (*.ini)", 2, GUICtrlRead($Programmname_input))
IniWrite($Target_Config & ".ini", GUICtrlRead($Programmname_input), "Programm-Name", GUICtrlRead($Programmname_input))
IniWrite($Target_Config & ".ini", GUICtrlRead($Programmname_input), "Kategorie", GUICtrlRead($Kategorie_input))
IniWrite($Target_Config & ".ini", GUICtrlRead($Programmname_input), "Autor", GUICtrlRead($Benutzer_input))
If MsgBox(320, "Erstellung abgeschlossen", "Die Erstellung der Konfigurations-Datei wurde abgeschlossen. Sie können nun die Konfigurations-Datei uploaden.") Then
_ini_close()
EndIf
EndFunc ;==>_ini_save
Func _ini_abbrechen()
If MsgBox(4, "Keine INI-Datei", "Sie haben keine Konfigurations-Datei für Ihr IOM-Skript erstellt." & @CRLF & "Bitte erstellen Sie eine Konfigurations-Datei." & @CRLF & "Möchten Sie die Konfigurations-Datei für Ihr IOM-Skript nun erstellen.") = 6 Then
GUISetState(@SW_SHOW, $INIGUI)
Else
_ini_close()
EndIf
EndFunc ;==>_ini_abbrechen
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programmliste-Funktionen
; ----------------------------------------
Func _programmliste_open()
GUISetState(@SW_SHOW, $ProgrammlisteGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_programmliste_open
Func _programmliste_close()
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
EndFunc ;==>_programmliste_close
; Funktion von Install-O-Matic Manager 2.00 übernommen (Autor: peethebee)
Func _programmliste_scan_programs()
$items = ""
; Suche nach allen Dateien und Verzeichnissen
$search = FileFindFirstFile($Target_IOM & "*")
; Überprüfen, ob die Suche erfolgreich war
If $search = -1 Then
MsgBox(0, "Fehler", "Es wurde keine Programme mehr in der Install-O-Matic gefunden...")
EndIf
While 1
$result = FileFindNextFile($search)
If @error Then ExitLoop
If FileExists($Target_IOM & $result & "install_iom_anwendungen.au3") Or FileExists($Target_IOM & $result & "install_iom_essentials.au3") Or FileExists($Target_IOM & $result & "install_iom_sicherheit.au3") Or FileExists($Target_IOM & $result & "install_iom_sonstiges.au3") Then
$items &= $result & "|"
EndIf
WEnd
; Suchhandle schließen
FileClose($search)
$items = StringTrimRight($items, 1)
GUICtrlSetData($Programmliste_programm_liste, "") ; Liste leeren...
GUICtrlSetData($Programmliste_programm_liste, $items) ; ...und neu befüllen
EndFunc ;==>_programmliste_scan_programs
; ----------------------------------------------------------------------------
; ----------------------------------------
; FTP-Funktionen
; ----------------------------------------
Func _FTP()
; Baue FTP-Verbindung auf
$FTP_Open = _FTPOpen("Skript-Loader für IOM", 1, '', '', 0)
; Baue Verbdindung zum Server auf
$Server = ""
$User = ""
$Pass = ""
$SubDir = "" ; $SubDir hat hier keine Verwendung
$Port = "21"
$FTP_Server = _FTPConnect ($FTP_Open, $Server, $User, $Pass, $Port)
EndFunc ;==>_FTP
; ----------------------------------------------------------------------------
; ----------------------------------------
; Credits-Funktionen
; ----------------------------------------
Func _credits()
_disablen()
GUISetState(@SW_HIDE, $mainGUI)
_credits_open()
EndFunc ;==>_credits
; Credits-Funktion von Galenda übernommen (Autor: peethebee)
Func _credits_open()
Local $about[20], $times[1]
$about[0] = "=== Idee ==="
$about[1] = "Manuel Kübler"
$about[2] = ""
$about[3] = "=== Programmierer ==="
$about[4] = "Manuel Kübler, BlackJack, huggy,"
$about[5] = "peethebee"
$about[6] = ""
$about[7] = "Feedback und Anregungen sind"
$about[8] = " immer willkommen! "
$about[9] = "mk-software@gmx.de"
$about[10] = ""
$about[11] = "=== Programmiersprache ==="
$about[12] = "AutoIt 3 (https://autoit.de/www.autoitscript.com)"
$about[13] = ""
$about[14] = "=== Danke an ==="
$about[15] = "Danke an huggy für die Bereitstellung einer"
$about[16] = "Online-Datenbank für den Skript-Loader."
$about[17] = "Danke an peethebee für die"
$about[18] = "Credits-Funktion und die"
$about[19] = "Programmliste-Funktion."
$times[0] = 2500
HotKeySet("{ESC}", "_credits_close")
_txt_eff__about_messages($mainGUI, $gui_dmy_1, $about, 15, $times, 1, "modern")
EndFunc ;==>_credits_open
;===============================================================================
;
; Description: Shows a about box with many different effects.
; Syntax: _txt_eff__about_messages($winhandle, $control_id, $texts, [$delay, [$showtime, [$pause, [$type]]]])
; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow), $showtime - time the single message is shown (also possible: array with values correspondenting to $texts), $pause - time to wait until the next message is displayed, $type - type of the animation: "raining, "right_to_left", "left_to_right", "right_to_right", "left_to_left", "enlarge_from_left", "enlarge_from_right", "zoom_big_to_small", "zoom_small_to_big", "move_cap_char", "move_small_char", "wall_to_wall", "blink", "wave", "mix_up", "spotlight", "fade", "rainbow", "modern"
; Requirement(s): v3.1.1.66 (beta) or later
; Author(s): peethebee <[email='peethebee@gmx.de'][/email]>
; Note(s): None
;
;===============================================================================
Func _txt_eff__about_messages($winhandle, $control_id, $texts, $delay = 50, $showtime = 2000, $pause = 750, $type = "right_to_left")
If $type = "modern" Then
; ------- parameters -------
Local $_lbl_height = 20 ; height of a single line (label)
Local $_no_color = 0xECE9D8
Local $_black = 0x000000
Local $_messages = 5
Global $_labels[$_messages]
; enlarge Arrray
For $k = 1 To $_messages
_ArrayInsert($texts, 0, "")
_ArrayInsert($texts, UBound($texts), "")
Next
Global $_txt_eff_about_gui = GUICreate("Credits", 250, $_lbl_height 20 $_lbl_height * $_messages 80, -1, -1, 0, 0) ; the about win's title, width and height here
Global $_txt_eff_gui_close_lbl = GUICtrlCreateLabel("[ESC zum Abbrechen]", 10, $_lbl_height 20 $_lbl_height * $_messages 25, 230, 20, $SS_CENTER)
GUICtrlSetColor(-1, 0xFF00000)
GUICtrlSetFont(-1, 10)
For $k = 1 To $_messages
$_style = $SS_CENTER ; styles are located here!
$_labels[$k - 1] = GUICtrlCreateLabel("[Error]", 10, 50 25 * $k, 210, $_lbl_height, $_style)
Next
GUISetState(@SW_SHOW)
For $k = 0 To UBound($texts) - $_messages
GUICtrlSetColor($_labels[$_messages - 1], 0xECE9D8)
For $p = 0 To $_messages - 1
GUICtrlSetPos($_labels[$p], 19, $_lbl_height 20 $_lbl_height * $p, 210, $_lbl_height)
GUICtrlSetData($_labels[$p], $texts[$k $p])
Next
For $c = 0 To - $_lbl_height Step - 1 ; control's height is here again
If WinExists("Credits") Then
Sleep($delay)
; move
For $z = 0 To $_messages - 1
GUICtrlSetPos($_labels[$z], 19, $_lbl_height 20 $_lbl_height * $z $c, 210, $_lbl_height)
Next
; fade
$red_diff = _ColorGetRed($_black) - _ColorGetRed($_no_color)
$green_diff = _ColorGetGreen($_black) - _ColorGetGreen($_no_color)
$blue_diff = _ColorGetBlue($_black) - _ColorGetBlue($_no_color)
$red_res = Hex(_ColorGetRed($_black) Round($red_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
$green_res = Hex(_ColorGetGreen($_black) Round($green_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
$blue_res = Hex(_ColorGetBlue($_black) Round($blue_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
GUICtrlSetColor($_labels[0], "0x" & $red_res & $green_res & $blue_res)
$red_diff = _ColorGetRed($_no_color) - _ColorGetRed($_black)
$green_diff = _ColorGetGreen($_no_color) - _ColorGetGreen($_black)
$blue_diff = _ColorGetBlue($_no_color) - _ColorGetBlue($_black)
$red_res = Hex(_ColorGetRed($_black) Round($red_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
$green_res = Hex(_ColorGetGreen($_black) Round($green_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
$blue_res = Hex(_ColorGetBlue($_black) Round($blue_diff / $_lbl_height * ($c $_lbl_height 1)), 2)
GUICtrlSetColor($_labels[$_messages - 1], "0x" & $red_res & $green_res & $blue_res)
Else
Return
EndIf
Next
Next
;~ GUIDelete($_txt_eff_about_gui)
_credits_close()
EndIf
EndFunc ;==>_txt_eff__about_messages
Func _credits_close()
GUIDelete($_txt_eff_about_gui)
HotKeySet("{ESC}")
GUISetState(@SW_SHOW, $mainGUI)
_enablen()
EndFunc ;==>__credits_close
; ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; ----------------------------------------
; Disable & Enable-Funktionen
; ----------------------------------------
Func _disablen()
GUISetState($download, $GUI_DISABLE)
GUISetState($upload, $GUI_DISABLE)
EndFunc ;==>_disablen
Func _enablen()
GUICtrlSetState($download, $GUI_ENABLE)
GUICtrlSetState($upload, $GUI_ENABLE)
EndFunc ;==>_enablen
; ============================================================================
While 1
sleep(500)
WEnd
Gefällt mir, echt nett gemacht!
Hast du gut hinbekommen!
Danke. Ich hab es noch ein bisschen verbessert und BlackJack musste seine blöden Bugs entfernen. Jetzt muss nur noch huggy die Datenbank zu Ende bauen
#cs ----------------------------------------------------------------------------
AutoIt-Version: v3.2.0.1
Programmname: Skript-Loader für IOM
Version: ...
Idee Manuel Kübler
Programmierer: Manuel Kübler (GUIs, Funktionen, Mail, Download)
BlackJack (FTP, Info, Credits, INI-Creator, Upload)
huggy (Online-Datenbank)
peethebee (Info, Credits, Programm-Liste)
Mail: [email='mk-software@gmx.de'][/email]
Copyrigtht: © Manuel Kübler 2006
Skript Function:
...
Danke an BlackJack, huggy, peethebee!
----------------------------------------------------------------------------
Todo:
- Online-Datenbank
-> Info-Box
-> OD an den FTP-Server anpassen
-> URL zum Skript-Loader hinzuügen
- huggy
- INI-Dateien
-> Jedes Programm erhält eine individuelle INI-Datei
- Offen
Done:
- BUG im INI-Creator
-> BUG entfernen
- BlackJack (Done.)
- Info-Funktion
-> Info-Funktion von Galenda übernehmen
-> Anpassen an den Skript-Loader
- BlackJack (Done.)
- Integration des IOM-Skriptes
-> Fragen nach dem Download, ob man das Skript gleich integrieren will
-> Install-O-Matic Manager 2.00 wird gestartet
- Manuel Kübler (Done.)
- FTP-Funktion
-> Skripte auf FTP hochladen (Done. by BlakJack)
-> Skripte von FTP in Temp-Ordner herunterladen (Done. by Manuel Kübler)
- BlackJack & Manuel Kübler
- INI-Creator & Funktionen
-> Integrieren des Plug-Ins INI-Creator
-> Menü-Eintrag erstellen
-> Ohne INI-Datei kein Upload
-> Programm-Name, Autor, Kategorie, ...(Done. by Manuel Kübler)
- BlackJack (Done.)
- Credits
-> Credits-Funktion von Galenda übernommen
-> Angepasst an den Skript-Loader
- BlackJack (Done.)
- Mail-Funktion
-> Wenn Skript nicht existiert, wird der Autor informiert.
-> Autor informiert Benutzer wenn Skript verfügbar ist.
- Manuel Kübler (Done.)
- Programm-Liste
-> Liste über alle integrierten Programme
- Manuel Kübler (Done.)
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1)
; ----------------------------------------
; Includes
; ----------------------------------------
#Include <Array.au3>
#include <Color.au3>
#include <FTP.au3>
#include <GUIConstants.au3>
#include <INet.au3>
; ----------------------------------------
; Variablen-Deklarationen
; ----------------------------------------
Global $File = @TempDir & "\Programme.iom"
Global $gui_dmy_1 = GUICtrlCreateDummy() ; Dummy (v.a. für AboutBox)
Global $Target_IOM = RegRead("HKLM\SOFTWARE\PC Magazin\Install-O-Matic", "HDD Path")
Global $PROGRAM_NAME = "Install-O-Matic Skript-Loader"
Global $PROGRAM_VERSION = "1.00"
; ----------------------------------------
; Mail
; ----------------------------------------
Global $Mail_To = "mk-software@gmx.de"
If @OSVersion <> "WIN_XP" Then
If MsgBox(16, "Nicht unterstützte Windows-Version", "Der Skript-Loader für die Install-O-Matic wurde für Microsoft Windows XP entwickelt und getestet. Deshalb wird nicht empfohlen, es unter diesem Betriebssystem (" & @OSVersion & ") zu starten.") <> 6 Then Exit
EndIf
If Not FileExists($Target_IOM) Then
If MsgBox(16, "IOM konnte nicht gefunden werden", "Bitte kopieren Sie Install-O-Matic mit der Hilfe des Install-O-Matic Manager 2.00 von der PC Magazin 05/2006 DVD auf Ihre Festplatte.") <> 6 Then Exit
EndIf
; ============================================================================
; ============================================================================
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; MainGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$mainGUI = GuiCreate($PROGRAM_NAME, 276, 113)
GUISetOnEvent($GUI_EVENT_CLOSE, "_file_close")
;
; Menü
; Datei
$gui_mnu_file = GUICtrlCreateMenu("&Datei")
; INI-Datei erstellen
$gui_mnu_file_close = GUICtrlCreateMenuitem("INI-Datei erstellen", $gui_mnu_file)
GUICtrlSetOnEvent(-1, "_file_ini")
;
$gui_mnu_file_close = GUICtrlCreateMenuitem("", $gui_mnu_file)
; Beenden
$gui_mnu_file_close = GUICtrlCreateMenuitem("Beenden", $gui_mnu_file)
GUICtrlSetOnEvent(-1, "_file_close")
; Online-Datenbank
$gui_mnu_online = GUICtrlCreateMenu("&Online-Datenbank")
; Welche Skripte wurden bereits ins Internet gestellt?
$gui_mnu_online_skriptliste = GUICtrlCreateMenuitem("Welche Skripte wurden bereits ins Internet gestellt?", $gui_mnu_online)
GUICtrlSetOnEvent(-1, "_online_skriptliste_open")
; Info
$gui_mnu_online_info = GUICtrlCreateMenuitem("Info", $gui_mnu_online)
; Hilfe
$gui_mnu_help = GUICtrlCreateMenu("&Hilfe")
; Welche Programme wurden bereits integriert?
$gui_mnu_help_programmliste = GUICtrlCreateMenuitem("Welche Programme wurden bereits integriert?", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_help_programmliste_open")
;
$gui_mnu_help_programmliste = GUICtrlCreateMenuitem("", $gui_mnu_help)
; Credits
$gui_mnu_help_credits = GUICtrlCreateMenuitem("Credits", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_help_credits")
; Info
$gui_mnu_help_info = GUICtrlCreateMenuitem("Info", $gui_mnu_help)
GUICtrlSetOnEvent(-1, "_help_info")
;
; BUTTONS erzeugen und Klick-Ereignisse den Funktionen zuordnen
$download = GUICtrlCreateButton("Skripte downloaden", 10, 20, 120, 30)
GUICtrlSetOnEvent($download, "_download")
$upload = GUICtrlCreateButton("Skripte uploaden", 143, 20, 120, 30)
GUICtrlSetOnEvent($upload, "_upload")
; Fenster anzeigen
GUISetState(@SW_SHOW, $mainGUI)
; ----------------------------------------------------------------------------
; ----------------------------------------
; INI-CreatorGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$INIGUI = GuiCreate("INI-Creator", 276, 200)
GUISetOnEvent($GUI_EVENT_CLOSE, "_file_ini_close")
$Programmname_label = GUICtrlCreateLabel("Programm-Name:", 20, 23)
$Programmname_input = GUICtrlCreateInput("", 110, 20, 150)
$Kategorie_label = GUICtrlCreateLabel("Kategorie:", 20, 63)
$Kategorie_input = GUICtrlCreateCombo ("Anwendungen", 110, 60, 150)
GUICtrlSetData(-1,"System Essentials|Sicherheit|Sonstiges", "Anwendungen")
$Benutzer_label = GUICtrlCreateLabel("Autor:", 20, 103)
$Benutzer_input = GUICtrlCreateInput("", 110, 100, 150)
$save = GUICtrlCreateButton("Speichern", 20, 140, 100, 30)
GUICtrlSetOnEvent($save, "_file_ini_save")
$abbrechen = GUICtrlCreateButton("Abbrechen", 133, 140, 100, 30)
GUICtrlSetOnEvent($abbrechen, "_file_ini_abbrechen")
; Fenster verstecken
GUISetState(@SW_HIDE, $INIGUI)
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programm-ListeGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$ProgrammlisteGUI = GuiCreate("Welche Programme wurden bereits integriert?", 400, 383)
GUISetOnEvent($GUI_EVENT_CLOSE, "_help_programmliste_close")
$Programmliste_programm_liste = GUICtrlCreateList("", 20, 20, 360, 300)
_help_programmliste_scan_programs()
$Programmliste_aktualisieren = GUICtrlCreateButton("Ak&tualisieren", 25, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_aktualisieren, "_help_programmliste_scan_programs")
$Programmliste_close = GUICtrlCreateButton("Schließen", 225, 333, 150, 30)
GUICtrlSetOnEvent($Programmliste_close, "_help_programmliste_close")
; Fenster verstecken
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
; ============================================================================
; ============================================================================
; ----------------------------------------
; Funktionen
; ----------------------------------------
; ----------------------------------------------------------------------------
; ----------------------------------------
; Main-Funktionen
; ----------------------------------------
Func _download()
_disablen() ; Deaktiviere Buttons
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu integrierenden Programms ein.")
; Prüfe ob Temp-Datei existiert, wenn ja lösche Datei und erstelle neu, wenn nein, erstelle neu
If FileExists($File) Then
FileDelete($File)
FileWrite($File, $Name_Open)
Else
FileWrite($File, $Name_Open)
EndIf
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(4, $Programmname & "-Skript downloaden?", "Möchten Sie das Skript für " & $Programmname & " vom FTP-Server herunterladen?") = 6 Then
_FTP()
If @error Then
TrayTip("FTP-Verbindung", "Die Verbindung zum FTP-Server konnte nicht hergestellt werden.", 2000, 3)
; Lösche Temp-Datei
FileDelete($File)
; MainGUI anzeigen
GUISetState(@SW_SHOW, $mainGUI)
; Buttons aktivieren
_enablen()
Else
TrayTip("FTP-Verbindung", "Die Verbindung zum FTP-Server wurde hergestellt.", 2000, 1)
; Lese Programmname
$Programmname = FileReadLine($File, 1)
TrayTip("Download", "Das Skript wird heruntergeladen.", 2000, 1)
; Lade Skript herunter
InetGet("ftp://ftp.yourdomain.de/" & $Programmname & "/" & $Programmname & ".au3", @TempDir & "\" & $Programmname & ".au3", 1, 0)
; Lade Konfigurations-Datei für das IOM-Skript herunter
InetGet("ftp://ftp.yourdomain.de/" & $Programmname & ".ini", @TempDir & "\" & $Programmname & ".ini", 1, 0)
If @error Then
TrayTip("Download", "Das Skript wurde nicht heruntergeladen.", 2000, 3)
; Lösche Temp-Datei
FileDelete($File)
; MainGUI anzeigen
GUISetState(@SW_SHOW, $mainGUI)
; Buttons aktivieren
_enablen()
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Prüfe ob Skript heruntergeladen wurde
If FileExists(@TempDir & "\" & $Programmname & ".au3") Then
TrayTip("Download", "Das Skript wurde heruntergeladen.", 2000, 1)
; Lese Programmname
$Programmname = FileReadLine($File, 1)
$var = FileSelectFolder("Wo möchten Sie das Skript für " & $Programmname & " speichern.", "", 1 + 2)
If @error Then
TrayTip("Speichern", "Das Skript konnte nicht gespeichert werden.", 2000, 3)
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Kopiere Skript nach $var
FileCopy(@TempDir & "\" & $Programmname & ".au3", $var)
; Kopiere Konfigurations-Datei nach $var
FileCopy(@TempDir & "\" & $Programmname & ".ini", $var)
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Info über das heruntergeladene Skript
If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & 'Skript-Ort: "' & $var & '"') Then
; Lösche Skript im Temp-Verzeichnis
FileDelete(@TempDir & "\*.au3")
; Lösche Konfigurations-Datei im Temp-Verzeichnis
FileDelete(@TempDir & "\*.ini")
EndIf
; Starte Integrate-Funktion
_integrate()
EndIf
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(64, $Programmname & "-Skript nicht gefunden", "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden." & @CRLF & "Der Autor wird über das fehlende Skript informiert. Er schickt Ihnen eine E-Mail wenn das Skript verfügbar ist.") Then
; Schreibe E-Mail an Autor
_INetMail($Mail_To, $Programmname & "-Skript wurde nicht gefunden", "Hallo Herr Kübler," & @CRLF & "Das Skript für das Programm " & $Programmname & " wurde nicht gefunden. Könnten Sie es bitte auf den FTP-Server packen und mich danach informieren.")
; Lösche Temp-Datei
FileDelete($File)
EndIf
EndIf
EndIf
EndIf
EndIf
_enablen()
EndFunc ;==>_download
[/autoit] [autoit][/autoit] [autoit]Func _upload()
_disablen() ; Deaktiviere Buttons
; Name des Programms
$Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu uploadenden Programms ein.")
If @error Then
; Hier kommt der Quelltext rein
Else
; Schreibe Programmename in die Temp-Datei
If FileExists($File) Then
FileDelete($File)
FileWrite($File, $Name_Open)
Else
FileWrite($File, $Name_Open)
EndIf
; Lese Programmname
$Programmname = FileReadLine($File, 1)
If MsgBox(4, $Programmname & " uploaden", 'Möchten Sie wirklich das Skript für "' & $Programmname & '" auf den FTP-Server hochladen?') = 6 Then
_FTP()
If @error Then
TrayTip("FTP-Verbindung", "Die Verbindung zum FTP-Server konnte nicht hergestellt werden.", 2000, 3)
Else
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Erstelle Verzeichnis
$FTP_Target = _FTPMakeDir($FTP_Server, $Programmname)
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; INI-Datei hochladen
$Target_INI = FileOpenDialog('Bitte wählen Sie die Konfigurations-Datei für das Skript "' & $Target_Scripts & '"', @MyDocumentsDir, "Konfigurations-Dateien für IOM-Skripte (*.ini)", 1 + 2 )
If @error Then
If MsgBox(16, "Keine INI-Datei ausgewählt", "Bitte wählen Sie eine INI-Datei aus. Ohne INI-Datei kann das Skript nicht hochgeladen werden.") Then _ini()
Else
; Starte INI-Upload-Funktion
_file_ini_upload()
EndIf
; Lade Skript-Datei hoch
$Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das upgeloadet werden sollte.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 )
If @error Then
TrayTip("Upload", "Kein Skript ausgewählt.", 2000, 3)
GUISetState(@SW_HIDE, $mainGUI)
_enablen()
Else
TrayTip("Upload", "Lade Skript hoch", 2000, 1)
_FTPPutFile($FTP_Server, $Target_Scripts, $Programmname & "\" & $Programmname & ".au3")
TrayTip("Upload", "Das Skript wurde hochgeladen.", 2000, 1)
; FTP-Verbindung schließen
_FTPClose($FTP_Open)
TrayTip("FTP-Verbindung", "Die FTP-Verbdindung wurde geschlossen.", 2000, 1)
EndIf
EndIf
EndIf
EndIf
_enablen()
EndFunc ;==>_upload
Func _help_info()
; Deaktiviere Buttons
_disablen() ; Deaktiviere Buttons
; Verstecke MainGUI
GUISetState(@SW_HIDE, $mainGUI)
MsgBox(640, "Informationen", "Sie nutzen " & @CRLF & @CRLF & $PROGRAM_NAME & @CRLF & $PROGRAM_VERSION & @CRLF & @CRLF & "Dieses Programm ist Freeware. Es darf verbreitet und kopiert werden, solange damit in keiner Art Gewinn erzielt wird (z.B. erhöhter Verkauf von Zeitschriften). Dafür ist eine Genehmigung bei [email='mk-software@gmx.de'][/email] einzuholen!" & @CRLF & @CRLF & "Vielen Dank, dass Sie " & $PROGRAM_NAME & " nutzen!" & @CRLF & @CRLF & "Die Autoren")
; Zeige MainGUI an
GUISetState(@SW_SHOW, $mainGUI)
_enablen()
EndFunc ;==>_help_info
Func _file_close()
Exit
EndFunc ;==>_file_close
; ----------------------------------------------------------------------------
; ----------------------------------------
; INICreator-Funktionen
; ----------------------------------------
Func _file_ini()
GUISetState(@SW_SHOW, $INIGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_file_ini
Func _file_ini_close()
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $INIGUI)
EndFunc ;==>_file_ini_close
Func _file_ini_save()
$Target_Config = FileSaveDialog("Erstellung von Konfigurations-Dateien für IOM-Skripte.", @MyDocumentsDir, "Konfigurations-Dateien für IOM-Skripte (*.ini)", 2, GUICtrlRead($Programmname_input))
If @error Then
If MsgBox(160, "Erstellung fehlgeschlagen", "Die Erstellung der Konfigurations-Datei ist fehlgeschlagen. Bitte starten Sie das Programm neu.") Then _file_ini_close()
Else
IniWrite($Target_Config & ".ini", "Install-O-Matic", "Programm-Name", GUICtrlRead($Programmname_input))
IniWrite($Target_Config & ".ini", "Install-O-Matic", "Kategorie", GUICtrlRead($Kategorie_input))
IniWrite($Target_Config & ".ini", "Install-O-Matic", "Autor", GUICtrlRead($Benutzer_input))
If MsgBox(320, "Erstellung abgeschlossen", "Die Erstellung der Konfigurations-Datei wurde abgeschlossen. Sie können nun die Konfigurations-Datei uploaden.") Then _file_ini_close()
EndIf
EndFunc ;==>_file_ini_save
Func _file_ini_abbrechen()
If MsgBox(4, "Keine INI-Datei", "Sie haben keine Konfigurations-Datei für Ihr IOM-Skript erstellt." & @CRLF & "Bitte erstellen Sie eine Konfigurations-Datei." & @CRLF & "Möchten Sie die Konfigurations-Datei für Ihr IOM-Skript nun erstellen.") = 6 Then
GUISetState(@SW_SHOW, $INIGUI)
Else
_file_ini_close()
EndIf
EndFunc ;==>_file_ini_abbrechen
[/autoit] [autoit][/autoit] [autoit]Func _file_ini_upload()
; Lese Programmname
$Programmname = FileReadLine($File, 1)
TrayTip("Upload", "Lade Konfigurations-Datei hoch", 2000, 1)
_FTPPutFile($FTP_Server, $Target_INI, $Programmname & ".ini")
EndFunc ;==>_file_ini_upload
; ----------------------------------------------------------------------------
; ----------------------------------------
; OnlineDatenbank-Funktionen
; ----------------------------------------
Func _online_skriptliste_open()
Run(@ComSpec & " /c Start http://www.yourdomain.de", "", @SW_HIDE)
EndFunc ;==>_online_skriptliste_open
; ----------------------------------------------------------------------------
; ----------------------------------------
; Programmliste-Funktionen
; ----------------------------------------
Func _help_programmliste_open()
GUISetState(@SW_SHOW, $ProgrammlisteGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_help_programmliste_open
Func _help_programmliste_close()
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
EndFunc ;==>_help_programmliste_close
; Funktion von Install-O-Matic Manager 2.00 übernommen (Autor: peethebee)
Func _help_programmliste_scan_programs()
$items = ""
; Suche nach allen Dateien und Verzeichnissen
$search = FileFindFirstFile($Target_IOM & "*")
; Überprüfen, ob die Suche erfolgreich war
If $search = -1 Then
MsgBox(0, "Fehler", "Es wurde keine Programme mehr in der Install-O-Matic gefunden...")
EndIf
While 1
$result = FileFindNextFile($search)
If @error Then ExitLoop
If FileExists($Target_IOM & $result & "\install_iom_anwendungen.au3") Or FileExists($Target_IOM & $result & "\install_iom_essentials.au3") Or FileExists($Target_IOM & $result & "\install_iom_sicherheit.au3") Or FileExists($Target_IOM & $result & "\install_iom_sonstiges.au3") Then
$items &= $result & "|"
EndIf
WEnd
; Suchhandle schließen
FileClose($search)
$items = StringTrimRight($items, 1)
GUICtrlSetData($Programmliste_programm_liste, "") ; Liste leeren...
GUICtrlSetData($Programmliste_programm_liste, $items) ; ...und neu befüllen
EndFunc ;==>_help_programmliste_scan_programs
; ----------------------------------------------------------------------------
; ----------------------------------------
; FTP-Funktionen
; ----------------------------------------
Func _FTP()
; Baue FTP-Verbindung auf
$FTP_Open = _FTPOpen("Skript-Loader für IOM", 1, '', '', 0)
; Baue Verbdindung zum Server auf
$Server = ""
$User = ""
$Pass = ""
$SubDir = "" ; $SubDir hat hier keine Verwendung
$Port = "21"
$FTP_Server = _FTPConnect ($FTP_Open, $Server, $User, $Pass, $Port)
EndFunc ;==>_FTP
; ----------------------------------------------------------------------------
; ----------------------------------------
; Credits-Funktionen
; ----------------------------------------
Func _help_credits()
_disablen()
GUISetState(@SW_HIDE, $mainGUI)
_help_credits_open()
EndFunc ;==>_help_credits
; Credits-Funktion von Galenda übernommen (Autor: peethebee)
Func _help_credits_open()
Local $about[20], $times[1]
$about[0] = "=== Idee ==="
$about[1] = "Manuel Kübler"
$about[2] = ""
$about[3] = "=== Programmierer ==="
$about[4] = "Manuel Kübler, BlackJack, huggy,"
$about[5] = "peethebee"
$about[6] = ""
$about[7] = "Feedback und Anregungen sind"
$about[8] = " immer willkommen! "
$about[9] = "mk-software@gmx.de"
$about[10] = ""
$about[11] = "=== Programmiersprache ==="
$about[12] = "AutoIt 3 (https://autoit.de/www.autoitscript.com)"
$about[13] = ""
$about[14] = "=== Danke an ==="
$about[15] = "Danke an huggy für die Bereitstellung einer"
$about[16] = "Online-Datenbank für den Skript-Loader."
$about[17] = "Danke an peethebee für die"
$about[18] = "Credits-Funktion und die"
$about[19] = "Programmliste-Funktion."
$times[0] = 2500
HotKeySet("{ESC}", "_help_credits_close")
_txt_eff__about_messages($mainGUI, $gui_dmy_1, $about, 15, $times, 1, "modern")
EndFunc ;==>_help_credits_open
;===============================================================================
;
; Description: Shows a about box with many different effects.
; Syntax: _txt_eff__about_messages($winhandle, $control_id, $texts, [$delay, [$showtime, [$pause, [$type]]]])
; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow), $showtime - time the single message is shown (also possible: array with values correspondenting to $texts), $pause - time to wait until the next message is displayed, $type - type of the animation: "raining, "right_to_left", "left_to_right", "right_to_right", "left_to_left", "enlarge_from_left", "enlarge_from_right", "zoom_big_to_small", "zoom_small_to_big", "move_cap_char", "move_small_char", "wall_to_wall", "blink", "wave", "mix_up", "spotlight", "fade", "rainbow", "modern"
; Requirement(s): v3.1.1.66 (beta) or later
; Author(s): peethebee <[email='peethebee@gmx.de'][/email]>
; Note(s): None
;
;===============================================================================
Func _txt_eff__about_messages($winhandle, $control_id, $texts, $delay = 50, $showtime = 2000, $pause = 750, $type = "right_to_left")
If $type = "modern" Then
; ------- parameters -------
Local $_lbl_height = 20 ; height of a single line (label)
Local $_no_color = 0xECE9D8
Local $_black = 0x000000
Local $_messages = 5
Global $_labels[$_messages]
; enlarge Arrray
For $k = 1 To $_messages
_ArrayInsert($texts, 0, "")
_ArrayInsert($texts, UBound($texts), "")
Next
Global $_txt_eff_about_gui = GUICreate("Credits", 250, $_lbl_height + 20 + $_lbl_height * $_messages + 80, -1, -1, 0, 0) ; the about win's title, width and height here
Global $_txt_eff_gui_close_lbl = GUICtrlCreateLabel("[ESC zum Abbrechen]", 10, $_lbl_height + 20 + $_lbl_height * $_messages + 25, 230, 20, $SS_CENTER)
GUICtrlSetColor(-1, 0xFF00000)
GUICtrlSetFont(-1, 10)
For $k = 1 To $_messages
$_style = $SS_CENTER ; styles are located here!
$_labels[$k - 1] = GUICtrlCreateLabel("[Error]", 10, 50 + 25 * $k, 210, $_lbl_height, $_style)
Next
GUISetState(@SW_SHOW)
For $k = 0 To UBound($texts) - $_messages
GUICtrlSetColor($_labels[$_messages - 1], 0xECE9D8)
For $p = 0 To $_messages - 1
GUICtrlSetPos($_labels[$p], 19, $_lbl_height + 20 + $_lbl_height * $p, 210, $_lbl_height)
GUICtrlSetData($_labels[$p], $texts[$k + $p])
Next
For $c = 0 To - $_lbl_height Step - 1 ; control's height is here again
If WinExists("Credits") Then
Sleep($delay)
; move
For $z = 0 To $_messages - 1
GUICtrlSetPos($_labels[$z], 19, $_lbl_height + 20 + $_lbl_height * $z + $c, 210, $_lbl_height)
Next
; fade
$red_diff = _ColorGetRed($_black) - _ColorGetRed($_no_color)
$green_diff = _ColorGetGreen($_black) - _ColorGetGreen($_no_color)
$blue_diff = _ColorGetBlue($_black) - _ColorGetBlue($_no_color)
$red_res = Hex(_ColorGetRed($_black) + Round($red_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
$green_res = Hex(_ColorGetGreen($_black) + Round($green_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
$blue_res = Hex(_ColorGetBlue($_black) + Round($blue_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
GUICtrlSetColor($_labels[0], "0x" & $red_res & $green_res & $blue_res)
$red_diff = _ColorGetRed($_no_color) - _ColorGetRed($_black)
$green_diff = _ColorGetGreen($_no_color) - _ColorGetGreen($_black)
$blue_diff = _ColorGetBlue($_no_color) - _ColorGetBlue($_black)
$red_res = Hex(_ColorGetRed($_black) + Round($red_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
$green_res = Hex(_ColorGetGreen($_black) + Round($green_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
$blue_res = Hex(_ColorGetBlue($_black) + Round($blue_diff / $_lbl_height * ($c + $_lbl_height + 1)), 2)
GUICtrlSetColor($_labels[$_messages - 1], "0x" & $red_res & $green_res & $blue_res)
Else
Return
EndIf
Next
Next
;~ GUIDelete($_txt_eff_about_gui)
_help_credits_close()
EndIf
EndFunc ;==>_txt_eff__about_messages
Func _help_credits_close()
GUIDelete($_txt_eff_about_gui)
HotKeySet("{ESC}")
GUISetState(@SW_SHOW, $mainGUI)
_enablen()
EndFunc ;==>_help_credits_close
; ----------------------------------------------------------------------------
; ----------------------------------------
; Integrate-Funktionen
; ----------------------------------------
Func _integrate()
; Lese Programmname
$Programmname = FileReadLine($File, 1)
; Info-Box über die Integration
If MsgBox(4, $Programmname & " integrieren", "Möchten Sie " & $Programmname & " nun in die Install-O-Matic integrieren?") = 6 Then
; Starte Install-O-Matic Manager 2.00
Run($Target_IOM & "install-o-matic_2_manager.exe")
; Lösche Temp-Datei
FileDelete($File)
Else
; Lösche Tem-Datei
FileDelete($File)
EndIf
EndFunc ;==>_integrate
; ----------------------------------------------------------------------------
; ----------------------------------------
; Disable & Enable-Funktionen
; ----------------------------------------
Func _disablen()
GUISetState($download, $GUI_DISABLE)
GUISetState($upload, $GUI_DISABLE)
EndFunc ;==>_disablen
Func _enablen()
GUICtrlSetState($download, $GUI_ENABLE)
GUICtrlSetState($upload, $GUI_ENABLE)
EndFunc ;==>_enablen
; ============================================================================
While 1
sleep(500)
WEnd