Hallo
nun möchte ich mich auch mal trauen. Ich habe mal für das Radio, in dem ich mal gesendet habe, ein Programm erstellt mit dem sie den Chat öffnen und die Musik hören könne. Die Idee kam mir dazu, weil ich einfach keine Lust hatte, mich jedesmal über die Webseite ins Radio zu begeben. Deshalb dachte ich mir, es wäre doch einfacher sich dazu ein Programm zu schreiben. Gesagt getan.
Nun ich habe es zwar nun eine ganze Weile fertig und bei mir auf der Platte zu liegen. Auch waren die Reaktionen der Mitglieder aus dem Radio sehr gut, nur möchte ich auch mal Eure Meinung dazu hören.
Ich habe das Programm, bzw die Dateien das Projektes mal hier angehangen. Verzeiht mir wenn ich den Code hier nicht so schreibe, da es ein paar Dateien sind.
Wenn ihr Anregungen dazu habt, immer heraus damit. Ich bin für jede Hilfe dankbar.
MfG Darktown
Hier nun doch der Code
Hauptdatei:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <IE.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=RPC.ico
#AutoIt3Wrapper_outfile=rpc.exe
#AutoIt3Wrapper_Res_Comment=Viewer für Radio-Power-Champs
#AutoIt3Wrapper_Res_LegalCopyright=CopyRight by Dj-Dark81
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; UPDATE EINBAUEN
_UpdateProgramm(false)
; ENDE UPDATE
;URLs der einzelnen Schalter
$IE = _IECreateEmbedded()
$forum = "http://radio-power-champs.de/forum/index.php"
$sende = "http://radio-power-champs.de/sendeplan.php"
$wubu = "http://radio-power-champs.de/Wunschbox/index.php"
$flat = "http://92.51.137.94/objects/FlatViewerSetup530.exe"
$flat2 = "http://92.51.137.94/objects/FlatViewerSetup522.exe"
$flat3 = "http://92.51.137.94/objects/FlatViewerSetup501.exe"
$hpr = "http://radio-power-champs.de"
$hfl = "http://www.flatcast.net/FcForum.aspx?forum=499"
$news = "http://radio-power-champs.de/news.php"
;auslesen der Programmversion und datums
$ProgrammVersion = IniRead(@ScriptDir & '\version.ini','Allgemein','Version','')
$updatedate = IniRead(@ScriptDir & '\version.ini' , 'Allgemein' , 'Date', '')
;auslesen der Chat.ini so das die dazugehörigen Texte in denn einzelnen Feldern angezeigt werden
$Input_Feld1 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Begruessung" ,'')
$Input_Feld2 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Verabschiedung" ,'')
$Input_Feld3 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Eigener1" ,'')
$Input_Feld4 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Eigener2" ,'')
$Input_Feld5 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Eigener3" ,'')
$Input_Feld6 = IniRead(@ScriptDir & "\chat.ini", "Text" , "Eigener4" ,'')
Global $html, $old
[/autoit] [autoit][/autoit] [autoit];Breite des Fensters
$Breite = 850
$Hoehe = 650
;GUI
$Form1 = GUICreate("Radio-Power-Champs Version: " & $ProgrammVersion, $Breite, $Hoehe, 0, 0)
$Menu_Datei = GUICtrlCreateMenu("&Datei")
$Menu_Einstellung = GUICtrlCreateMenuItem("Einstellung Chatbefehle", $Menu_Datei)
$Menu_beenden = GUICtrlCreateMenuItem("Beenden", $Menu_Datei)
$Menu_Plan = GUICtrlCreateMenu("&Homepage")
$Menu_News = GUICtrlCreateMenuItem("News", $Menu_Plan)
$Menu_Home = GUICtrlCreateMenuItem("Forum", $Menu_Plan)
$Menu_Sende = GUICtrlCreateMenuItem("Sendeplan", $Menu_Plan)
$Menu_WUBU = GUICtrlCreateMenuItem("Wunschbox", $Menu_Plan)
$Menu_Chat = GUICtrlCreateMenu("&Chatbefehle")
$Menu_Begruess = GUICtrlCreateMenuItem("Begrüßung", $Menu_Chat)
$Menu_Verab = GUICtrlCreateMenuItem("Verabschieden", $Menu_Chat)
$Menu_eigen = GUICtrlCreateMenuItem("Eigener 1", $Menu_Chat)
$Menu_eigen1 = GUICtrlCreateMenuItem("Eigener 2", $Menu_Chat)
$Menu_eigen2 = GUICtrlCreateMenuItem("Eigener 3", $Menu_Chat)
$Menu_eigen3 = GUICtrlCreateMenuItem("Eigener 4", $Menu_Chat)
$Menu_Viewer = GUICtrlCreateMenu("&FlatcastViewer")
$Menu_Viewer53 = GUICtrlCreateMenuItem("Viewer 5.3", $Menu_Viewer)
$Menu_Viewer52 = GUICtrlCreateMenuItem("Viewer 5.2", $Menu_Viewer)
$Menu_Viewer5 = GUICtrlCreateMenuItem("Viewer 5", $Menu_Viewer)
$Menu_help = GUICtrlCreateMenu("&?")
$Menu_hfl = GUICtrlCreateMenuItem("Hilfe Flatcst", $Menu_help)
$Menu_hpr = GUICtrlCreateMenuItem("Homepage Radio", $Menu_help)
$Menu_ABOUT = GUICtrlCreateMenuItem("About", $Menu_help)
$browser = GUICtrlCreateObj($IE,5, 5, $Breite -5 , $Hoehe)
$sPathHelp = @ProgramFilesDir & '\rpc\Flatcasthelp.chm'
GUISetHelp(@WindowsDir & '\hh.exe "' & $sPathHelp & '"')
GUISetState(@SW_SHOW)
; Fenster Einstellungen
$Chateinstellung = GUICreate("Chatbefehle", 633, 454, 192, 114)
$Menu_lBegruess = GUICtrlCreateLabel("Begrüßung", 24, 88, 56, 17)
$Input1 = GUICtrlCreateInput($Input_Feld1, 120, 88, 497, 21)
$Menu_lVerab = GUICtrlCreateLabel("Verabschiedung", 24, 120, 81, 17)
$Input2 = GUICtrlCreateInput($Input_Feld2, 120, 120, 497, 21)
$Menu_leigen = GUICtrlCreateLabel("Eigener 1", 24, 152, 49, 17)
$Input3 = GUICtrlCreateInput($Input_Feld3, 120, 152, 497, 21)
$Menu_leigen1 = GUICtrlCreateLabel("Eigener 2", 24, 184, 49, 17)
$Input4 = GUICtrlCreateInput($Input_Feld4, 120, 184, 497, 21)
$Menu_leigen2 = GUICtrlCreateLabel("Eigener 3", 24, 216, 49, 17)
$Input5 = GUICtrlCreateInput($Input_Feld5, 120, 216, 497, 21)
$Menu_leigen3 = GUICtrlCreateLabel("Eigener 4", 24, 248, 49, 17)
$Input6 = GUICtrlCreateInput($Input_Feld6, 120, 248, 497, 21)
$Label7 = GUICtrlCreateLabel("Chatbefehle zum Einfügen in den Chat. ", 40, 16, 191, 17)
$Save = GUICtrlCreateButton("Speichern", 400, 408, 97, 33)
$Close = GUICtrlCreateButton("Close", 512, 408, 89, 33)
#EndRegion ### END Koda GUI section ###
;INtegrierter Chat, eingebunden ins fenster
_IENavigate($IE,"http://www.sandsturm.alfahosting.org/rpc.html")
;Aktionen der Schalter
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Switch $nMsg[1]
Case $Form1 ; Bei der Hauptform
Exit ; Skript beenden
Case Else ; Bei allen anderen
GUISetState(@SW_SHOW,$Form1) ; Hauptform anzeigen
GUISetState(@SW_HIDE,$nMsg[1]) ; Das Form verstecken, was geschlossen werden soll
GUISwitch($Form1) ; Hauptform auf aktiv setzen
EndSwitch
Exit
;Wechsel der Fenster zwischen Hauptfenster und Einstellungen
Case $Menu_Einstellung
GUISetState(@SW_SHOW,$Chateinstellung) ; Anzeigen von Kindform1
GUISetState(@SW_SHOW,$Form1) ; Hauptform verstecken
GUISwitch($Chateinstellung) ; Form eins als aktiv kennzeichnen
;Einstellungen fenster verstecken beim drücken von close
Case $Close
GUISetState(@SW_SHOW,$Form1) ; Hauptform anzeigen
GUISetState(@SW_HIDE,$Chateinstellung) ; Das Form verstecken, was geschlossen werden soll
GUISwitch($Form1) ; Hauptform auf aktiv setzen
Case $Menu_beenden
Exit
Case $Menu_Plan
Exit
Case $Menu_News
_news()
ContinueLoop
Case $Menu_Home
_forum()
ContinueLoop
Case $Menu_Sende
_sende()
ContinueLoop
Case $Menu_WUBU
_WUBU()
ContinueLoop
Case $Menu_Chat
Exit
Case $Menu_Begruess
_begruess()
ContinueLoop
Case $Menu_Verab
_verab()
ContinueLoop
Case $Menu_eigen
_eigen1()
ContinueLoop
case $Menu_eigen1
_eigen2()
ContinueLoop
case $Menu_eigen2
_eigen3()
ContinueLoop
case $Menu_eigen3
_eigen4()
ContinueLoop
Case $Menu_Viewer
Exit
Case $Menu_Viewer53
_viewer()
ContinueLoop
Case $Menu_Viewer52
_viewer52()
ContinueLoop
Case $Menu_Viewer5
_viewer5()
ContinueLoop
case $Menu_hfl
_hfl()
ContinueLoop
case $Menu_hpr
_hpr()
ContinueLoop
case $Menu_ABOUT
_about()
ContinueLoop
Case $Save
_hello_in()
ContinueLoop
Case $Close
EndSwitch
WEnd
;Funktionen der Schalter
Func _news()
_IECreate($news,1 ,1, 0)
EndFunc
Func _forum()
_IECreate($forum,1, 1, 0)
EndFunc
Func _sende()
_IECreate($sende,1,1,0)
EndFunc
Func _WUBU()
_IECreate($wubu,1 ,1,0)
EndFunc
func _viewer()
_IECreate($flat, 1, 1, 0)
EndFunc
func _viewer52()
_IECreate($flat2,1 ,1, 0)
EndFunc
Func _viewer5()
_IECreate($flat3,1 , 1, 0)
EndFunc
func _hfl()
ShellExecute( @ProgramFilesDir & "\rpc\Flatcasthelp.chm" , "", "C:\Programme\rpc\Flatcasthelp.chm")
EndFunc
func _hpr()
_IECreate($hpr,1 ,1 ,0)
EndFunc
func _about()
MsgBox(1, "Über das Programm", "Name: Radio-Power-Champs Viewer" & @CR & _
"Version " & $ProgrammVersion & @CR & _
"Erstellt am " & $updatedate & @CR & _
"Von Dj-Dark, Dj bei Radio Power-Champs" & @CR & _
"Lizenz: Freeware")
EndFunc
;chatbefehle in eine ini schreiben
Func _hello_in()
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Begruessung" , GUICtrlRead($Input1))
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Verabschiedung" , GUICtrlRead($Input2))
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Eigener1" , GUICtrlRead($Input3))
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Eigener2" , GUICtrlRead($Input4))
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Eigener3" , GUICtrlRead($Input5))
IniWrite(@ScriptDir & "\Chat.ini", "Text" , "Eigener4" , GUICtrlRead($Input6))
EndFunc
;copy paste funktion für den chat
func _begruess()
$begr = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Begruessung" , '')
ControlClick("Radio-Power-Champs Version: ", '' , "Edit1")
Send( $begr , 1)
Sleep(200)
Send("{Enter}")
EndFunc
func _verab()
$Verabsch = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Verabschiedung" , '')
ControlClick("Radio-Power-Champs Version", '' , "Edit1")
Send($Verabsch, 1)
Sleep(200)
Send("{Enter}")
EndFunc
func _eigen1()
$Eigener1 = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Eigener1" , '')
ControlClick("Radio-Power-Champs Version", '' , "Edit1")
Send($Eigener1, 1)
Sleep(200)
Send("{Enter}")
EndFunc
func _eigen2()
$Eigener2 = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Eigener2" , '')
ControlClick("Radio-Power-Champs Version", '' , "Edit1")
Send($Eigener2, 1)
Sleep(200)
Send("{Enter}")
EndFunc
func _eigen3()
$Eigener3 = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Eigener3" , '')
ControlClick("Radio-Power-Champs Version", '' , "Edit1")
Send($Eigener3, 1)
Sleep(200)
Send("{Enter}")
EndFunc
func _eigen4()
$Eigener4 = IniRead(@ScriptDir & "\Chat.ini", "Text" , "Eigener4" , '')
ControlClick("Radio-Power-Champs Version", '' , "Edit1")
Send($Eigener4, 1)
Sleep(200)
Send("{Enter}")
EndFunc
Update (von Blog4IT.de)
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Jens Kröger - Blog4IT.de
Script Function:
Diese kleine UDF kann als Update Zusatz genutzt werden, gedacht ist, das
man auf einem Webserver die Dateien bereitstellt.
Wichtig ist, das es eine update.ini Datei auf dem Webserver gibt.
Der Aufbau sollte beispielhaft so aussehen:
[Allgemein]
Version=1.0.2
Updatefiles=2
[Updatefiles]
File1=Hauptprogramm.exe
File2=docs\info.txt
Im Bereich allgemein muss die Versionsnummer stehen und bei dem Parameter
Updatefiles, die Anzahl der Dateien die aktuallisiert werden sollen.
In der Sektion Updatefiles, kommen dann die Dateien bzw. Ordner mit Dateien.
So liegt in dem Beispiel "Hauptprogramm.exe" im Hauptverzeichnis, die
"info.txt" Datei liegt aber im Unterordner "docs"
Hat man sich seine Dateiliste fertig gemacht, kann man im Allgemeinen Bereich
die Anzahl aber auch auf 1 stellen, dann würde nur das "Hauptprogramm.exe"
ersetzt werden (in diesem Beispiel)
Die Einbindung in das Hauptprogramm.
Hier muss nur am Anfangsbereich folgende Zeile eingefügt werden:
#include <myupdate.au3>
Es muss auch eine version.ini Datei mit der lokalen Version und der
URL zum Update Server vorhanden sein. Aufbau:
[Allgemein]
Version=1.0.0
URL=http://wwww.xxxx.com/
Wichtig, die URL muss mit einem / beendet werden.
Wichtig, ist natürlich, das die Versionsnummer immer beachtet wird, wenn
man eine neue Version baut und diese verteilen möchte.
Will man nun prüfen lassen, ob eine neue Version vorliegt, muss nur ein
Befehl aufgerufen werden:
_UpdateProgramm()
Man kann auch Parameter angeben, true = nach dem Update wird das Programm
geschlossen, false = die alte Version läuft noch weiter.
Hinweis:
DIESE UDF HABE ICH FÜR MICH GEBAUT, SIE DARF ALLERDINGS VON JEDER MANN/
FRAU GENUTZT, GEÄNDERT UND VERÖFFENTLICHT WERDEN.
SOLLTE SIE ANGEPASST WERDEN, SO SOLLTE DIESE IN DEM BESCHREIBUNGSBLOG
KENNTLICH GEMACHT WERDEN.
UNTER AUTHOR SOLL MEINNAME IMMER DRINNEN STEHEN!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
FÜR DIE NUTZUNG ÜERNEHME ICH KEINE HAFTUNG, SIE GESCHIED AUF EIGENE
GEFAHR
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#ce ----------------------------------------------------------------------------
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $ProgrammVersion = ''
Local $UpdateURL = ''
Func _UpdateInit($version,$url)
EndFunc
Func _UpdateProgramm($quit = False)
; Daten aus version.ini einlesen, diese muss vorhanden sein
$ProgrammVersion = IniRead(@ScriptDir & '\version.ini','Allgemein','Version','')
$UpdateURL = IniRead(@ScriptDir & '\version.ini','Allgemein','URL','')
; Die derzeitigen Ticks bestimmen, damit man gefahrlos
; im Temp eine Datei erzeugen kann, die noch nicht vorhanden
; ist.
Dim $curTick = _TimeToTicks(@HOUR,@MIN,@SEC)
; Herrunterladen der Update INI, da hier auch die Versionsnummer
; enthalten ist.
InetGet($UpdateURL & 'update.ini',@TempDir & '\' & $curTick & '.ini',1)
; In der runtergeladenen INI Datei schauen, ob die Version,
; die dort drinnen steht, eine andere ist wie die, die
; im Programm festgelegt wurde.
; Das Resultat wird in einer Variabelen mit wahr (true)
; oder falsch (false) gespeichert.
$UpdateINI_Version = IniRead(@TempDir & '\' & $curTick & '.ini','Allgemein','Version','0.0.0')
$UpdateDate = IniRead(@TempDir & '\' & $curTick & '.ini','Allgemein','Date','00.00.0000')
$Update_available = $ProgrammVersion <> $UpdateINI_Version
; Version 0.0.0 dann konnten die Daten nicht vom Webserver geladen werden
; Das Update wird dann abgebrochen.
If $UpdateINI_Version = '0.0.0' Then Return
; Wenn die Versionen gleich sind, wird die Funktion an dieser
; Stelle verlassen und eine entsprechende Meldung zurück gegeben.
If not $Update_available Then Return 'Ihre Version ist aktuell.'
; Wenn eine andere Version gefunden wurde, dann wird hier weiter gemacht
; Frage bzgl. Update und Druchführung erzeugen
$meldung = 'Es wurde ein Update gefunden!'
$meldung &= @LF & "Derzeit installierte Version: " & $ProgrammVersion
$meldung &= @LF & "Neue Version: " & IniRead(@TempDir & '\' & $curTick & '.ini','Allgemein','Version','0.0.0')
$meldung &= @LF & "Ab nun ist auch die # in den Chatbefehlen möglich. Also funktioniert zb. #N nun auch"
$meldung &= @LF & "Möchten Sie das Update durchführen?"
; Frage anzeigen und die Antwort in einer Variablen speichern
$Update_execute = MsgBox(36,"Update gefunden",$meldung)
; Wenn das Update nicht durchgeführt werden soll, wird hier die Funktion
; verlassen, ohne Rückmeldung
If $Update_execute <> 6 Then Return
; Wenn auf Ja geklickt wurde wird hier weiter gemacht
; In der Ini Datei nachsehen, wieviele Dateien ausgetauscht oder erstellt werden müssen
Dim $Update_Anzahl_Files = IniRead(@TempDir & '\' & $curTick & '.ini','Allgemein','Updatefiles','0')
; Die grafische Oberfläche für die Update Meldungen
$Form1 = GUICreate("Form1", 627, 45, -1, -1, $WS_POPUPWINDOW)
$lblupdatestatus = GUICtrlCreateLabel("Updatestatus:", 8, 8, 606, 33)
GUICtrlSetFont(-1, 20, 800, 0, "Arial")
GUISetState(@SW_SHOW)
; Alte Dateien verschieben
GUICtrlSetData($lblupdatestatus,"Updatestatus: " & "Alte Dateien sichern")
For $i = 1 To $Update_Anzahl_Files
$currentUpdateFile = @ScriptDir & '\' & IniRead(@TempDir & '\' & $curTick & '.ini','Updatefiles','File' & $i,'')
IF FileExists($currentUpdateFile) Then
FileMove($currentUpdateFile,$currentUpdateFile & '.bak',1)
Else
FileCopy(@TempDir & '\' & $curTick,$currentUpdateFile & '.bak',9)
EndIf
Next
Sleep(2000)
; Neue Dateien laden
For $i = 1 To $Update_Anzahl_Files
GUICtrlSetData($lblupdatestatus,"Updatestatus: " & "Download Datei " & $i & " von " & $Update_Anzahl_Files)
$currentUpdateFile = IniRead(@TempDir & '\' & $curTick & '.ini','Updatefiles','File' & $i,'')
InetGet($UpdateURL & StringReplace($currentUpdateFile,"\","/"),@ScriptDir & '\' & $currentUpdateFile,1)
Next
; Grafische Oberfläche entfernen
GUISetState(@SW_HIDE,$Form1)
; Neue Version in die version.ini schreiben
IniWrite(@ScriptDir & '\version.ini','Allgemein','Version',$UpdateINI_Version)
IniWrite(@ScriptDir & '\version.ini','Allgemein','Date',$UpdateDate)
; Update Abschlussmeldung - quit = false
If not $quit Then
$meldung = "Das Programm wurde auf den neusten Stand"
$meldung &= @LF & "gebracht."
$meldung &= @LF & "Bitte starten Sie das Programm neu,"
$meldung &= @LF & "damit alle Änderungen wirksam werden."
MsgBox(64,"Info",$meldung)
Return
EndIf
; Update Abschlussmeldung - quit = true
$meldung = "Das Programm wurde auf den neusten Stand"
$meldung &= @LF & "gebracht."
$meldung &= @LF & "Bitte starten Sie das Programm neu,"
$meldung &= @LF & "damit alle Änderungen wirksam werden."
$meldung &= @LF & ""
$meldung &= @LF & "Programm wird beendet"
MsgBox(64,"Info",$meldung)
Exit
EndFunc