Ich werde in nächster Zeit ein neues Programm schreiben, das für Install-O-Matic is. Der User gibt ein welches Programm er integrieren will, dann prüft das Programm ob die Datei auf dem FTP-Server ist und lädt sie gegebenenfalls herunter. Es gibt die Möglichkeit eigene Skripte hochzuladen. Da das Programm sehr komplex wird, dachte ich mir man könnte den Skript-Loader als Team-Arbeit machen. Wer Lust hat mitzuprogrammieren soll sich bei mir melden
Skript-Loader für IOM
-
DJMANU -
31. August 2006 um 08:38 -
Geschlossen
-
-
- Offizieller Beitrag
Die Idee ist gut, huggy hat sie auch schon in Erwägung gezogen.
Aber so komplex, dass man da Teamarbeit anfangen muss, glaube ich nicht, dass es ist. Natürlich kann man immer mal Teile zeigen oder nachfragen.Viel Erfolg,
peethebee -
Ich hab mal auf dem Papier das Programm geplant, und es ist schon riessig, deshalb gehe ich lieber auf Nummer sicher. Wenn Huggy mitprogrammieren soll er sich bei mir melden.
-
Zitat
Original von DJMANU
dann prüft das Programm ob die Datei auf dem FTP-Server ist und lädt sie gegebenenfalls herunter. Es gibt die Möglichkeit eigene Skripte hochzuladen.
ich hätte da eine Rechliche Frage
welche Programm willst du runterlade ?
wenn es z.B. MS Office ist hats du ganz schnell Ärger mit denen -
Zitat
Original von muh_kuh
ich hätte da eine Rechliche Frage
welche Programm willst du runterlade ?
wenn es z.B. MS Office ist hats du ganz schnell Ärger mit denenDas Programm lädt keine Programme herunter, wie der Name schon sagt lädt es Skripte für das Programm herunter, die man in IOM einbinden kann
-
Zitat
Original von DJMANU
Ich hab mal auf dem Papier das Programm geplant, und es ist schon riessig, deshalb gehe ich lieber auf Nummer sicher. Wenn Huggy mitprogrammieren soll er sich bei mir melden.LLLLLLLLLLLLLOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLll
Sorry
Ich und mitprogrammieren? Nene das lassen wir lieber^^
Naja, was ich machen könnte sind Scripts (die mach ich eh), hab eine MySQL Tabelle erstellt, die autoit.de scripts sind drinnen, wo man auch selber scripts uploaden kann.
Was ich übernehmen würde ist:
Bekannt machen,
Viele Scripte schreiben,
eine Homepage darüber machen
und euch helfen , was ich halt so schaff :tier: :musik1:
-
Also du meinst nicht dass das script eine exe runterläd. sondern nur ein Script, und bei dem Programm ist Autoit dabei und es startet sich selber?
-
- Offizieller Beitrag
Das Programm soll die Skripte ähnlich dem IMO-Manager in die eigene IOM einbinden. Die hat ja AutoIt dabei und kann daher au3-Dateien ausführen.
peethebee
-
genau das wollte ich nochmal sicherstellen, danke
-
Wer mitprogrammieren will soll sich bitte melden
-
Ich hab mal an gefangen, momentan sind noch ein paar Bugs im Programm drin, die werden aber vor der ersten fertigen Version behoben.
Spoiler anzeigen
C
Alles anzeigen#cs ---------------------------------------------------------------------------- AutoIt-Version: v3.2.0.1 Programmname: Skript-Loader für IOM Version: ... Autor: Manuel Kübler Mail: mk-software@gmx.de Copyrigth: © Manuel Kübler 2006 Skript Function: #ce ---------------------------------------------------------------------------- ; ---------------------------------------------------------------------------- ; Todo: ; - FTP-Funktion ; -> Skripte auf FTP hochladen ; -> Skripte von FTP in Temp-Ordner herunterladen ; - Offen ; - Bug in KategorieGUI ; -> Buttons anklickbar machen ; - Manuel Kübler ; - 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: ; - Programm-Liste ; -> Liste über alle integrierten Programme ; - Manuel Kübler (Done.) ; - KategorieGUI ; -> Alle Kategorien der IOM ; - Manuel Kübler (Done.) ; - Kategorie-Funktionen ; -> Integrieren der Programme in die IOM ; -> Skripte von FTP berücksichtigen ; - Manuel Kübler (Done.) ; ---------------------------------------------------------------------------- ; ============================================================================ ; ---------------------------------------- ; AutoIT Options ; ---------------------------------------- Opt("GUIOnEventMode", 1) ; ---------------------------------------- ; Includes ; ---------------------------------------- #include <GUIConstants.au3> ; ---------------------------------------- ; Variablen-Deklarationen ; ---------------------------------------- Global $File = @TempDir & "\Programme.iom" Global $Target_IOM = _Backslash(RegRead("HKLM\SOFTWARE\PC Magazin\Install-O-Matic", "HDD Path")) ; ---------------------------------------- ; FTP ; ---------------------------------------- ;Global $FTP_Pass = ;Global $FTP_Server = ;Global $FTP_SubDir = ;Global $FTP_User = 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", 542, 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") $open = GUICtrlCreateButton("Skripte öffnen", 276, 20, 120, 30) GUICtrlSetOnEvent($open, "_open") $copy = GUICtrlCreateButton("Skripte kopieren", 409, 20, 120, 30) GUICtrlSetOnEvent($copy, "_copy") ; Fenster anzeigen GUISetState(@SW_SHOW, $mainGUI) ; ---------------------------------------------------------------------------- ; ---------------------------------------- ; KategorieGUI ; ---------------------------------------- ; Fenster erzeugen und Close-Ereignis behandeln $KategorieGUI = GuiCreate("Kategorie-Auswahl", 462, 130) GUISetOnEvent($GUI_EVENT_CLOSE, "_kategorie_close") ; $id_label1 = GUICtrlCreateLabel("Zu welcher Kategorie soll das Programm hinzugefügt werden.", 10, 20, 439, 100) GUICtrlSetFont(-3, 14, 400) ; ; BUTTONS erzeugen und Klick-Ereignisse den Funktionen zuordnen $Kategorie_Anwendungen = GUICtrlCreateButton("Anwendungen", 10, 80, 100, 30) GUICtrlSetOnEvent($Kategorie_Anwendungen, "_kategorie_anwendungen") $Kategorie_SystemEssentials = GUICtrlCreateButton("System Essentials", 123, 80, 100, 30) GUICtrlSetOnEvent($Kategorie_SystemEssentials, "_kategorie_systemessentials") $Kategorie_Sicherheit = GUICtrlCreateButton("Sicherheit", 236, 80, 100, 30) GUICtrlSetOnEvent($Kategorie_Sicherheit, "_kategorie_sicherheit") $Kategorie_Sonstiges = GUICtrlCreateButton("Sonstiges", 349, 80, 100, 30) GUICtrlSetOnEvent($Kategorie_Sonstiges, "_kategorie_sonstiges") ; Fenster anzeigen GUISetState(@SW_HIDE, $KategorieGUI) ; ---------------------------------------------------------------------------- ; ---------------------------------------- ; 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.") ; Hier kommt der FTP-Quelltext rein _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 ) ; Hier kommt der FTP-Quelltext rein EndIf MsgBox(320, "Skripte uploaden", "Diese Schaltfläche hat keine Funktion.") _enablen() EndFunc ;==>_upload Func _open() _disablen() ; Name des Programms $Name_Open = InputBox("Programm-Name", "Bitte geben Sie den Namen des zu integrierenden Programms ein.") FileWrite($File, $Name_Open) ; Prüfe ob das Programm schon in die IOM integriert wurde If FileExists($Target_IOM & $Name_Open) Then If MsgBox(64, "Info", $Name_Open & " wurde bereits in die IOM integriert.") Then FileDelete($File) GUISetState(@SW_SHOW, $mainGUI) EndIf Else ; Öffne KategorieGUI _kategorie_open() EndIf _enablen() EndFunc ;==>_open Func _copy() MsgBox(320, "Skripte kopieren", "Diese Schaltfläche hat keine Funktion.") EndFunc ;==>_copy ;Func _programmliste() ; ; MsgBox(320, "Welche Programme wurden bereits integriert?", "Diese Schaltfläche hat keine Funktion.") ; ;EndFunc ;==>_programmliste Func _credits() MsgBox(320, "Credits", "Diese Schaltfläche hat keine Funktion.") EndFunc ;==>_credits Func _info() MsgBox(320, "Info", "Diese Schaltfläche hat keine Funktion.") EndFunc ;==>_info Func _close() Exit EndFunc ;==>_close ; ---------------------------------------------------------------------------- ; ---------------------------------------- ; Kategorie-Funktionen ; ---------------------------------------- Func _kategorie_open() GUISetState(@SW_SHOW, $KategorieGUI) GUISetState(@SW_HIDE, $mainGUI) EndFunc ;==>_kategorie_open Func _kategorie_close() GUISetState(@SW_SHOW, $mainGUI) GUISetState(@SW_HIDE, $KategorieGUI) EndFunc ;==>_kategorie_close ; Kategorie: Anwendungen Func _kategorie_anwendungen() ; Prüfe ob AutoIT Skript heruntergeladen wurde If Not FileExists(@TempDir & "\*.au3") Then ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Wenn nein, öffne FileOpenDialog $Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das integriert wird.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 ) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy($Target_Scripts, $Target_IOM & $Programmname & "\install_iom_anwendungen.au3") Else ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy(@TempDir & "\*.au3", $Target_IOM & $Programmname & "\install_iom_anwendungen.au3") If FileExists($Target_IOM & $Programmname & "\install_iom_anwendungen.au3") Then FileDelete(@TempDir & "\*.au3") EndIf EndIf ; Lese Programmname $Programmname = FileReadLine($File, 1) If MsgBox(64, "Info", "Programm-Name:" & $Programmname & @CRLF & "Programm-Ort: " & $Target_IOM & $Programmname & @CRLf & "Kategorie: Anwendungen") Then GUISetState(@SW_SHOW, $mainGUI) EndIf EndFunc ;==>_kategorie_anwendungen ; Kategorie: System Essentials Func _kategorie_systemessentials() ; Prüfe ob AutoIT Skript heruntergeladen wurde If Not FileExists(@TempDir & "\*.au3") Then ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Wenn nein, öffne FileOpenDialog $Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das integriert wird.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 ) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy($Target_Scripts, $Target_IOM & $Programmname & "\install_iom_essentials.au3") Else ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy(@TempDir & "\*.au3", $Target_IOM & $Programmname & "\install_iom_essentials.au3") If FileExists($Target_IOM & $Programmname & "\install_iom_essentials.au3") Then FileDelete(@TempDir & "\*.au3") EndIf EndIf ; Lese Programmname $Programmname = FileReadLine($File, 1) If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & "Programm-Ort: " & $Target_IOM & $Programmname & @CRLf & "Kategorie: System Essentials") Then FileDelete($File) GUISetState(@SW_SHOW, $mainGUI) EndIf EndFunc ;==>_kategorie_systemessentials ; Kategorie: Sicherheit Func _kategorie_sicherheit() ; Prüfe ob AutoIT Skript heruntergeladen wurde If Not FileExists(@TempDir & "\*.au3") Then ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Wenn nein, öffne FileOpenDialog $Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das integriert wird.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 ) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy($Target_Scripts, $Target_IOM & $Programmname & "\install_iom_sicherheit.au3") Else ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy(@TempDir & "\*.au3", $Target_IOM & $Programmname & "\install_iom_sicherheit.au3") If FileExists($Target_IOM & $Programmname & "\install_iom_sicherheit.au3") Then FileDelete(@TempDir & "\*.au3") EndIf EndIf ; Lese Programmname $Programmname = FileReadLine($File, 1) If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & "Programm-Ort: " & $Target_IOM & $Programmname & @CRLf & "Kategorie: Sicherheit") Then FileDelete($File) GUISetState(@SW_SHOW, $mainGUI) EndIf EndFunc ;==>_kategorie_sicherheit ; Kategorie: Sonstiges Func _kategorie_sonstiges() ; Prüfe ob AutoIT Skript heruntergeladen wurde If Not FileExists(@TempDir & "\*.au3") Then ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Wenn nein, öffne FileOpenDialog $Target_Scripts = FileOpenDialog('Bitte wählen Sie das Skript für das Programm "' & $Programmname & '" das integriert wird.', @MyDocumentsDir, "AutoIT Skripte (*.au3)", 1 + 2 ) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy($Target_Scripts, $Target_IOM & $Programmname & "\install_iom_sonstiges.au3") Else ; Lese Programmname $Programmname = FileReadLine($File, 1) ; Erstelle Verzeichnis DirCreate($Target_IOM & $Programmname) ; Kopiere Skript in das erstellte Verzeichnis FileCopy(@TempDir & "\*.au3", $Target_IOM & $Programmname & "\install_iom_sonstiges.au3") If FileExists($Target_IOM & $Programmname & "\install_iom_sonstiges.au3") Then FileDelete(@TempDir & "\*.au3") EndIf EndIf ; Lese Programmname $Programmname = FileReadLine($File, 1) If MsgBox(64, "Info", "Programm-Name: " & $Programmname & @CRLF & "Programm-Ort: " & $Target_IOM & $Programmname & @CRLf & "Kategorie: Sonstiges") Then FileDelete($File) GUISetState(@SW_SHOW, $mainGUI) EndIf EndFunc ;==>_kategorie_sonstiges ; ---------------------------------------------------------------------------- ; ---------------------------------------- ; 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 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 ; ---------------------------------------------------------------------------- ; ---------------------------------------- ; Disable & Enable-Funktionen ; ---------------------------------------- Func _disablen() GUISetState($download, $GUI_DISABLE) GUISetState($upload, $GUI_DISABLE) GUISetState($open, $GUI_DISABLE) GUISetState($copy, $GUI_DISABLE) EndFunc ;==>_disablen Func _kategorie_disablen() GUISetState($Kategorie_Anwendungen, $GUI_DISABLE) GUISetState($Kategorie_SystemEssentials, $GUI_DISABLE) GUISetState($Kategorie_Sicherheit, $GUI_DISABLE) GUISetState($Kategorie_Sonstiges, $GUI_DISABLE) EndFunc ;==>_kategorie_disablen Func _enablen() GUICtrlSetState($download, $GUI_ENABLE) GUICtrlSetState($upload, $GUI_ENABLE) GUICtrlSetState($open, $GUI_ENABLE) GUICtrlSetState($copy, $GUI_ENABLE) EndFunc ;==>_enablen Func _kategorie_enablen() GUICtrlSetState($Kategorie_Anwendungen, $GUI_ENABLE) GUICtrlSetState($Kategorie_SystemEssentials, $GUI_ENABLE) GUICtrlSetState($Kategorie_Sicherheit, $GUI_ENABLE) GUICtrlSetState($Kategorie_Sonstiges, $GUI_ENABLE) EndFunc ;==>_kategorie_enablen ; ---------------------------------------------------------------------------- ; Backslash Func _Backslash($_bs_text) If StringRight($_bs_text, 1) <> "\" Then Return $_bs_text & "\" Else Return $_bs_text EndIf EndFunc ;==>_Backslash ; ============================================================================ While 1 sleep(500) WEnd
Wie kann ich in der KategorieGUI die Buttons anklickbar machen?
BUG: Buttons in der Kategorie anklickbar machen (Done. by peethebee) -
#include <;GUIConstants.au3>
!=
#include <GUIConstants.au3>
Mite den ; funtzt es nicht!
-
In meinem Skript ist es nicht sol, da müsste irgendwas im Forum nicht stimme
-
Zitat
Original von huggy
Naja, was ich machen könnte sind Scripts (die mach ich eh), hab eine MySQL Tabelle erstellt, die autoit.de scripts sind drinnen, wo man auch selber scripts uploaden kann.
hast du dein DB schon ? -
schon längst
-
Ich hab den Skript-Loader komplett überarbeitet. Vielen Dank an BlackJack der das Plug-In geschrieben hat.
Skript-Loader für IOM:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#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
[/autoit] [autoit][/autoit] [autoit]
; -> Skripte auf FTP hochladen
; -> Skripte von FTP in Temp-Ordner herunterladen
; - Offen; - INI-Dateien
[/autoit] [autoit][/autoit] [autoit]
; -> 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
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; -> 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
[/autoit] [autoit][/autoit] [autoit]
; -> Buttons anklickbar machen
; - Manuel Kübler & peethebee (Done.); - Programm-Liste
[/autoit] [autoit][/autoit] [autoit]
; -> Liste über alle integrierten Programme
; - Manuel Kübler (Done.); ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1); ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Includes
; ----------------------------------------
#include <GUIConstants.au3>
#include <INet.au3>; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Variablen-Deklarationen
; ----------------------------------------
Global $File = @TempDir & "Programme.iom"
Global $Target_IOM = RegRead("HKLMSOFTWAREPC MagazinInstall-O-Matic", "HDD Path"); ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Mail
; ----------------------------------------
$Mail_To = "mk-software@gmx.de"
$Mail_Subject =
$Mail_Body =If @OSVersion <> "Win_xp" Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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
; ============================================================================; ============================================================================
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $mainGUI)
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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)
[/autoit] [autoit][/autoit] [autoit]
_programmliste_scan_programs()$Programmliste_aktualisieren = GUICtrlCreateButton("Ak&tualisieren", 25, 333, 150, 30)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($Programmliste_aktualisieren, "_programmliste_scan_programs")$Programmliste_close = GUICtrlCreateButton("Schließen", 225, 333, 150, 30)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($Programmliste_close, "_programmliste_close"); Fenster anzeigen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
; ============================================================================; ============================================================================
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; Funktionen
; ----------------------------------------
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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 ;==>_downloadFunc _upload()
[/autoit] [autoit][/autoit] [autoit]
_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 ;==>_uploadFunc _credits()
[/autoit] [autoit][/autoit] [autoit]
_disablen()
MsgBox(320, "Credits", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_creditsFunc _info()
[/autoit] [autoit][/autoit] [autoit]
_disablen()
MsgBox(320, "Info", "Diese Schaltfläche hat keine Funktion.")
_enablen()
EndFunc ;==>_infoFunc _close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_close
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Programmliste-Funktionen
; ----------------------------------------
Func _programmliste_open()
GUISetState(@SW_SHOW, $ProgrammlisteGUI)
GUISetState(@SW_HIDE, $mainGUI)
EndFunc ;==>_programmliste_openFunc _programmliste_close()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $mainGUI)
GUISetState(@SW_HIDE, $ProgrammlisteGUI)
EndFunc ;==>_programmliste_close; Funktion von Install-O-Matic Manager 2.00 übernommen
[/autoit] [autoit][/autoit] [autoit]
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
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Disable & Enable-Funktionen
; ----------------------------------------
Func _disablen()
GUISetState($download, $GUI_DISABLE)
GUISetState($upload, $GUI_DISABLE)
EndFunc ;==>_disablenFunc _enablen()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($download, $GUI_ENABLE)
GUICtrlSetState($upload, $GUI_ENABLE)
EndFunc ;==>_enablen
; ============================================================================While 1
[/autoit]
sleep(500)
WEndINI-Creator (PLug-IN):
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs ----------------------------------------------------------------------------
AutoIt-Version: ...
Programmname: ...
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][/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1); ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Includes
; ----------------------------------------
#include <GUIConstants.au3>; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Variablen-Deklarationen
; ----------------------------------------
; ============================================================================; ============================================================================
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; MainGUI
; ----------------------------------------
; Fenster erzeugen und Close-Ereignis behandeln
$mainGUI = GuiCreate("INI-Creator", 276, 200)
GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
;
$Programmname_label = GUICtrlCreateLabel("Programm-Name:", 20, 23)
$Programmname_input = GUICtrlCreateInput("", 110, 20, 150)
$Kategorie_label = GUICtrlCreateLabel("Kategorie:", 20, 63)
$Kategorie_input = GUICtrlCreateInput("", 110, 60, 150)
$Benutzer_label = GUICtrlCreateLabel("Autor:", 20, 103)
$Benutzer_input = GUICtrlCreateInput("", 110, 100, 150)
;
$save = GUICtrlCreateButton("Speichern", 20, 140, 100, 30)
GUICtrlSetOnEvent($save, "_save")
$close = GUICtrlCreateButton("Abbrechen", 133, 140, 100, 30); Fenster anzeigen
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $mainGUI); ============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; Funktionen
; ----------------------------------------
Func _save()
$Target_Config = FileSaveDialog( "Choose a name.", @MyDocumentsDir, "Konfigurations-Dateienfü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))
MsgBox(320, "Speichern", "Diese Schaltfläche hat keine Funktion.")
EndFunc ;==>_saveFunc _close()
[/autoit]
Exit
EndFunc ;==>_close
; ============================================================================
While 1
sleep(500)
WEnd -
Ich wollt mal fragen, wer Lust und Zeit hat die FTP-Funktion für mein Porgramm zu schreiben. Kann man das überhaupt machen, das ich auch vom FTP-Server Dateien auf den PC herunterlade. Oder braucht man hier schon wieder eine neue Funktion
-
- Offizieller Beitrag
Da braucht man nicht "schon wieder" eine neue Funktion, sondern die Funktion INetGet - und das poste ich dir nun wirklich nicht zum ersten mal!
peethebee
-
Danke.
BlackJack bastelt momentan an der Upload-Funktion.
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
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]; - INI-Datei erstellen
[/autoit] [autoit][/autoit] [autoit]
; -> Integrieren des Plug-Ins INI-Creator
; -> Menü-Eintrag erstellen (Done.)
; -> Ohne INI-Datei kein Upload
; - BlackJack; - FTP-Funktion
[/autoit] [autoit][/autoit] [autoit]
; -> Skripte auf FTP hochladen
; -> Skripte von FTP in Temp-Ordner herunterladen
; - Offen; - INI-Dateien
[/autoit] [autoit][/autoit] [autoit]
; -> 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; - Mail-Funktion
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; -> Wenn Skript nicht existiert, wird der Autor informiert.
; -> Autor informiert Benutzer wenn Skript verfügbar ist.
; - Manuel Kübler; Done:
[/autoit] [autoit][/autoit] [autoit]; - Credits
[/autoit] [autoit][/autoit] [autoit]
; -> Credits-Funktion von Galenda übernommen
; -> Anepasst an den Skript-Loader
; - BlackJack (Done.); - Programm-Liste
[/autoit] [autoit][/autoit] [autoit]
; -> Liste über alle integrierten Programme
; - Manuel Kübler (Done.); ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; ============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1); ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Includes
; ----------------------------------------
#Include <Array.au3>
#include <Color.au3>
#include <GUIConstants.au3>
#include <INet.au3>; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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"); ----------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Mail
; ----------------------------------------
;$Mail_To = "mk-software@gmx.de"
;$Mail_Subject =
;$Mail_Body =If @OSVersion <> "Win_xp" Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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
; ============================================================================; ============================================================================
[/autoit] [autoit][/autoit] [autoit]
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------; ----------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; 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
[/autoit]
GUISetState(@SW_SHOW, $mainGUI)
; --------------------bernd670: Tags abgeschlossen damit die Anzeige stimmt!
-
bernd670 Was meinst du mit "Tags abgeschlossen damit die Anzeige stimmt!"?
-