Hey,
habe grad tue mich grad etwas schwer...
Wollte mein Programm Radio Streamer etwas erweitern , habe aber dann gemerkt das dass Programm nur die Buttons der hauptgui erkennt , warum?
Was kann ich dagegen tuen?
Habe schonmal was von dem "Advanced - GUIGetMsg()-Modus" gehört. Aber habe da leider nichts passendes gefunden!
Wäre euch für Hilfe sehr dankbar!
2 Guis , aber nur eine wird "erkannt"
-
- [ offen ]
-
r1fLeX -
19. November 2008 um 17:38 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Alter, du bist jetzt schon relativ lange dabei.. Langsam solltest du mal die Regeln hier beachten...
Wie währe es z.B. mal mit nem Sourcecode(ausschnitt)?Mfg Spider
-
Ups , wollte ich eigentl,ich posten..Hab ich aber vergessen -.-.
[autoit]
hier...
[/autoit][autoit][/autoit][autoit]
#include <GUIConstants.au3>
#include <IE.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Radio Streamer", 422, 112, 195, 125)
$zeigen = TrayCreateItem("Zeigen")
$hidden = TrayCreateItem("Verstecken")
GUISetBkColor(0xC0C0C0)
$List1 = GUICtrlCreateList("", 0, 14, 125, 97)
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
GUICtrlSetData(-1, "HardBase.fm|HouseTime.fm|TechnoBase.fm|TranceBase.fm")
$Label1 = GUICtrlCreateLabel("Wähle ein Radio aus.", 10, 0, 106, 13)
$Group1 = GUICtrlCreateObj($oIE, 126, 0, 297, 65)
$Home = GUICtrlCreateButton("Home", 130, 84, 47, 21, 0)
$Spielen = GUICtrlCreateButton("Spielen", 184, 84, 47, 21, 0)
$Stop = GUICtrlCreateButton("Save", 238, 84, 47, 21, 0)
$Save = GUICtrlCreateButton("Credits", 292, 84, 47, 21, 0)
$add = GUICtrlCreateButton("Add", 346, 84, 47, 21, 0)
_IENavigate($oIE, "http://www.autoit.de")
GUISetState(@SW_SHOW)
$Form1 = GUICreate("Hinzufügen", 171, 64, 193, 125)
$Label1 = GUICtrlCreateLabel("Name:", 2, 4, 35, 17)
GUICtrlCreateInput("", 36, 2, 133, 21)
$Label2 = GUICtrlCreateLabel("Link:", 8, 24, 27, 17)
GUICtrlCreateInput("", 36, 22, 133, 21)
$Hinzufuegen = GUICtrlCreateButton("Add", 2, 44, 45, 19, 0)
$Button1 = GUICtrlCreateButton("Beispiel", 62, 44, 45, 19, 0)
$Button2 = GUICtrlCreateButton("Fertig", 124, 44, 45, 19, 0)
GUISetState(@SW_HIDE)
#endregion ### START Koda GUI section ### Form=
TraySetState()While 1
[/autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Home
_IENavigate($oIE, "http://www.autoit.de")
Case $Spielen
$seite = GUICtrlRead($List1)
If $seite = "TechnoBase.fm" Then
_IENavigate($oIE, "http://www.technobase.fm/wmplayer.php?Stream=http://DSL.TechnoBase.eu/listen-dsl.asx")
ElseIf $seite = "HardBase.fm" Then
_IENavigate($oIE, "http://www.hardbase.fm/wmplayer.php?Stream=http://mp3.hardbase.fm/listen.asx")
ElseIf $seite = "HouseTime.fm" Then
_IENavigate($oIE, "http://www.surfmusik.de/radio/housetime-fm,10832.html")
ElseIf $seite = "TranceBase.fm" Then
_IENavigate($oIE, "http://www.trancebase.fm/wmplayer.php?Stream=http://mp3.TranceBase.fm/listen.asx")
EndIf
Case $Stop
GUISetState(@SW_HIDE)
$msgbox = MsgBox(52, "Achtung", "Diese Datei kann man meines Wissens nur mit dem VLC Media Player öffnen!" & @CRLF & "Möchtest du fortfahren?")
If $msgbox = 6 Then
_IEAction($oIE, "saveas")
GUISetState(@SW_SHOW)
Else
GUISetState(@SW_SHOW)
EndIf
Case $Save
GUISetState(@SW_HIDE)
MsgBox(48, "Credits", "Credits gehen an r1fLeX von Autoit.de")
GUISetState(@SW_SHOW)
EndSwitch
Switch $nMsg[0]
Case $add
WinSetState("Hinzufügen", "", @SW_SHOW)
Case $Button2
WinSetState("Hinzufügen", "", @SW_HIDE)
EndSwitch
$msg = TrayGetMsg()
Switch $msg
Case $zeigen
WinSetState("Radio Streamer", "", @SW_SHOW)
Case $hidden
WinSetState("Radio Streamer", "", @SW_HIDE)
EndSwitch
WEnd
GUIDelete()
Exit -
Soweit ich weiß sollte schon GUISwitch() reichen...;)
-
Möchte aber das man nicht nur auf einer GUI agieren kann :).
Ich weiß das dass geht , nur nicht mehr wie :P. -
- Offizieller Beitrag
Als ich klein war, hat man versucht ein Problem mit seinem Kopf und dem verfügbaren Material zu lösen und hat danach Mami gefragt.
Aber ist wohl schon zu lange her...peethebee
-
ALTTAAA!
Pee warum machst du mich immer an wenn ich eine Frage stelle?
Ich habe es versucht... -
Versuch mal statt WinSetstate GUISetstate
Außerdem: Variablen doppelt verwendet... Label1 / Form1 ... -
Mach doch einfach mal folgendes:
[autoit]If WinActive($GUI1) Then
[/autoit]
GUISwitch($GUI1)
ElseIf WinActive($GUI2) Then
GUISwitch($GUI2)
EndIfund dann schreibst du alles Befehle von GUIGetMsg() in eine While...dann sollte es gehen.
...und wie Progandy ja schon gesagt hast must du die Variablen verdoppeln. Das heißt du darfst z.b. nicht 2 mal $Label1 haben, sonst wird beim zweiten deklarieren die erste Variable überschrieben und du kommst nicht mehr an das erste Label ran.
-
habs nun anders gelöst..
Jedoch stecke ich feste! ( ja , ich probiere seit knapp 45 Minuten aber komme nicht weiter , pee )Code
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Radio Streamer", 422, 112, 195, 125)
$zeigen = TrayCreateItem("Zeigen")
$hidden = TrayCreateItem("Verstecken")
GUISetBkColor(0xC0C0C0)
$List1 = GUICtrlCreateList("", 0, 14, 125, 97)
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
GUICtrlSetData(-1, "HardBase.fm|HouseTime.fm|TechnoBase.fm|TranceBase.fm")
$Label1 = GUICtrlCreateLabel("Wähle ein Radio aus.", 10, 0, 106, 13)
$Group1 = GUICtrlCreateObj($oIE, 126, 0, 297, 65)
$Home = GUICtrlCreateButton("Home", 130, 84, 47, 21, 0)
$Spielen = GUICtrlCreateButton("Spielen", 184, 84, 47, 21, 0)
$Stop = GUICtrlCreateButton("Save", 238, 84, 47, 21, 0)
$Save = GUICtrlCreateButton("Credits", 292, 84, 47, 21, 0)
$add = GUICtrlCreateButton("Add", 346, 84, 47, 21, 0)
_IENavigate($oIE, "http://www.autoit.de")
GUISetState(@SW_SHOW)
$Form2 = GUICreate("Hinzufügen", 171, 64, 193, 125)
$Label2 = GUICtrlCreateLabel("Name:", 2, 4, 35, 17)
$name = GUICtrlCreateInput("", 36, 2, 133, 21)
$Label3 = GUICtrlCreateLabel("Link:", 8, 24, 27, 17)
$link = GUICtrlCreateInput("", 36, 22, 133, 21)
$Hinzufuegen = GUICtrlCreateButton("Add", 2, 44, 45, 19, 0)
$Button1 = GUICtrlCreateButton("Beispiel", 62, 44, 45, 19, 0)
$Button2 = GUICtrlCreateButton("Fertig", 124, 44, 45, 19, 0)
GUISetState(@SW_HIDE)
#endregion ### START Koda GUI section ### Form=
TraySetState()If FileExists (@TempDir & "\sender.ini") Then
[/autoit] [autoit][/autoit] [autoit]
$sectionen = IniReadSectionNames (@TempDir & "\sender.ini")
For $i = 1 To $sectionen[0]
$section = IniReadSection (@TempDir & "\sender.ini","Sender" & $i)
GUICtrlSetData ($List1,$section[$i][1])
Next
EndIfWhile 1
[/autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Home
_IENavigate($oIE, "http://www.autoit.de")
Case $Spielen
$seite = GUICtrlRead($List1)
If $seite = "TechnoBase.fm" Then
_IENavigate($oIE, "http://www.technobase.fm/wmplayer.php?Stream=http://DSL.TechnoBase.eu/listen-dsl.asx")
ElseIf $seite = "HardBase.fm" Then
_IENavigate($oIE, "http://www.hardbase.fm/wmplayer.php?Stream=http://mp3.hardbase.fm/listen.asx")
ElseIf $seite = "HouseTime.fm" Then
_IENavigate($oIE, "http://www.surfmusik.de/radio/housetime-fm,10832.html")
ElseIf $seite = "TranceBase.fm" Then
_IENavigate($oIE, "http://www.trancebase.fm/wmplayer.php?Stream=http://mp3.TranceBase.fm/listen.asx")
EndIf
Case $Stop
GUISetState(@SW_HIDE)
$msgbox = MsgBox(52, "Achtung", "Diese Datei kann man meines Wissens nur mit dem VLC Media Player öffnen!" & @CRLF & "Möchtest du fortfahren?")
If $msgbox = 6 Then
_IEAction($oIE, "saveas")
GUISetState(@SW_SHOW)
Else
GUISetState(@SW_SHOW)
EndIf
Case $Save
GUISetState(@SW_HIDE)
MsgBox(48, "Credits", "Credits gehen an r1fLeX von Autoit.de")
GUISetState(@SW_SHOW)
EndSwitch
Switch $nMsg[0]
Case $add
GUISetState(@SW_SHOW,$Form2)
Case $Hinzufuegen
$name2 = GUICtrlRead ($name)
$link2 = GUICtrlRead ($link)
IniWrite (@TempDir & "\sender.ini","Sender1",$name2,$link2)
Case $Button2
GUICtrlSetData($name,"")
GUICtrlSetData($link,"")
GUISetState(@SW_HIDE,$Form2)
EndSwitch
$msg = TrayGetMsg()
Switch $msg
Case $zeigen
WinSetState("Radio Streamer", "", @SW_SHOW)
Case $hidden
WinSetState("Radio Streamer", "", @SW_HIDE)
EndSwitch
WEnd
GUIDelete()
ExitWäre super wenn mir jemand helfen könnte das ist wohl die schweste Aufgabe die ich hatte oO
-
- Offizieller Beitrag
1. Ich verstehe nicht warum du eigentlich GuiGetMsg(1) aufrufst wenn du nur das 1. Arrayfeld bei deiner Switchabfrage brauchst.
2.Der ausspruch :"Jedoch stecke ich feste!" bezieht sich auf was ? Was für ein Prob denn ? Das gleiche wie am Anfang ? Was geht nicht ? -
Bezieht sich darauf das ich nicht weiß wie ich die Eingabe Verarbeiten soll sprich wie ich es am Scriptstart auslesen und in die Liste einbringen soll. Siehst ja meine Ansätze
-
Nimm doch einfach ne INI Datei und schreib da alles rein.
-
Habe ich ja versucht...
Aber wie soll ich das dann auslesen? -
- Offizieller Beitrag
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Radio Streamer", 422, 112, 195, 125)
$zeigen = TrayCreateItem("Zeigen")
$hidden = TrayCreateItem("Verstecken")
GUISetBkColor(0xC0C0C0)
$List1 = GUICtrlCreateList("", 0, 14, 125, 97)
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
GUICtrlSetData(-1, "HardBase.fm|HouseTime.fm|TechnoBase.fm|TranceBase.fm")
$Label1 = GUICtrlCreateLabel("Wähle ein Radio aus.", 10, 0, 106, 13)
$Group1 = GUICtrlCreateObj($oIE, 126, 0, 297, 65)
$Home = GUICtrlCreateButton("Home", 130, 84, 47, 21, 0)
$Spielen = GUICtrlCreateButton("Spielen", 184, 84, 47, 21, 0)
$Stop = GUICtrlCreateButton("Save", 238, 84, 47, 21, 0)
$Save = GUICtrlCreateButton("Credits", 292, 84, 47, 21, 0)
$add = GUICtrlCreateButton("Add", 346, 84, 47, 21, 0)
_IENavigate($oIE, "http://www.autoit.de")
GUISetState(@SW_SHOW)
$Form2 = GUICreate("Hinzufügen", 171, 64, 193, 125)
$Label2 = GUICtrlCreateLabel("Name:", 2, 4, 35, 17)
$name = GUICtrlCreateInput("", 36, 2, 133, 21)
$Label3 = GUICtrlCreateLabel("Link:", 8, 24, 27, 17)
$link = GUICtrlCreateInput("", 36, 22, 133, 21)
$Hinzufuegen = GUICtrlCreateButton("Add", 2, 44, 45, 19, 0)
$Button1 = GUICtrlCreateButton("Beispiel", 62, 44, 45, 19, 0)
$Button2 = GUICtrlCreateButton("Fertig", 124, 44, 45, 19, 0)
GUISetState(@SW_HIDE)
#EndRegion ### START Koda GUI section ### Form=
TraySetState()If FileExists(@TempDir & "\sender.ini") Then
[/autoit] [autoit][/autoit] [autoit]
$sectionen = IniReadSectionNames(@TempDir & "\sender.ini")
For $i = 1 To $sectionen[0]
$section = IniReadSection(@TempDir & "\sender.ini", "Sender" & $i)
GUICtrlSetData($List1, $section[$i][1])
Next
EndIfWhile 1
[/autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
if $nMsg[1] = $Form2 then
GuiSetState(@SW_HIDE,$Form2)
Else
ExitLoop
EndIf
Case $Home
_IENavigate($oIE, "http://www.autoit.de")
Case $Spielen
$seite = GUICtrlRead($List1)
If $seite = "TechnoBase.fm" Then
_IENavigate($oIE, "http://www.technobase.fm/wmplayer.php?Stream=http://DSL.TechnoBase.eu/listen-dsl.asx")
ElseIf $seite = "HardBase.fm" Then
_IENavigate($oIE, "http://www.hardbase.fm/wmplayer.php?Stream=http://mp3.hardbase.fm/listen.asx")
ElseIf $seite = "HouseTime.fm" Then
_IENavigate($oIE, "http://www.surfmusik.de/radio/housetime-fm,10832.html")
ElseIf $seite = "TranceBase.fm" Then
_IENavigate($oIE, "http://www.trancebase.fm/wmplayer.php?Stream=http://mp3.TranceBase.fm/listen.asx")
EndIf
Case $Stop
GUISetState(@SW_HIDE)
$msgbox = MsgBox(52, "Achtung", "Diese Datei kann man meines Wissens nur mit dem VLC Media Player öffnen!" & @CRLF & "Möchtest du fortfahren?")
If $msgbox = 6 Then
_IEAction($oIE, "saveas")
GUISetState(@SW_SHOW,$Form1)
Else
GUISetState(@SW_SHOW,$Form1)
EndIf
Case $Save
GUISetState(@SW_HIDE,$Form1)
MsgBox(48, "Credits", "Credits gehen an r1fLeX von Autoit.de")
GUISetState(@SW_SHOW,$Form1)
Case $add
GUISetState(@SW_SHOW, $Form2)
Case $Hinzufuegen
$name2 = GUICtrlRead($name)
$link2 = GUICtrlRead($link)
IniWrite(@TempDir & "\sender.ini", "Sender1", $name2, $link2)
Case $Button2
GUICtrlSetData($name, "")
GUICtrlSetData($link, "")
GUISetState(@SW_HIDE, $Form2)
EndSwitch
$msg = TrayGetMsg()
Switch $msg
Case $zeigen
WinSetState("Radio Streamer", "", @SW_SHOW)
Case $hidden
WinSetState("Radio Streamer", "", @SW_HIDE)
EndSwitch
WEnd
GUIDelete()
ExitAlso hab erst mal en paar Fehler aus deinem Script beseitigt. Wenn du GuiSetState aufrufst um eine Gui zu verstecken oder anzuzeigen solltest du auch den Winhandle mit angeben sonst bekommst du nur Fehler. Wenn man in deinem Ursprungsscript die Credits aufruft und dann wieder schließt dann wird deine HInzufügengui angezeigt ($Form2 ).Ein GuiSetState(@SW_SHOW) oder HIDE bezieht sich auf das zu letzt erstellte GUI. Hab deine MSG abfrage mal en bischen umgeschrieben .Wenn du den schließen Button in der Hinzufügen Gui drückst wird dann nicht das Programm geschlossen (EXITLOOP) sondern nur das Gui versteckt . Wie du siehst habe ich für die Abfrage in welcher Gui der Schließen-Button gedrückt wird die Erweiterte Ausgabe von GuiGetMsg verwendet.
Die Senderliste würde ich in einer Textdatei Speichern oder überlege dir wie du die INI Datei verwalten willst .Beim jetzigen Stand des Scriptes kannst du nur 1 Sender Speichern . -
Danke.
Wie würdest du das mit den Sendern machen? StringReplace? -
- Offizieller Beitrag
Wie meinst du das jetz mit StringReplace ? Schreib doch deine Senderliste in ein Array und Speichere das dann mit _FileWriteFromArray in eine Datei deiner wahl. Wenn du die Senderliste in einem Array hast kannst mit _Arrayadd oder _ArrayDelete einen Eintag hinzufügen oder Löschen.
Edit: Für was soll denn der Home Button sein ? Und warum https://autoit.de/www.autoit.de ? -
Ok.
Das sollte ein kleines bisschen Werbung für Autoit.de sein! -
- Offizieller Beitrag
Achso.
Jetz mal Off-Topic:
Hast dich weiter oben in nem Post gewundert/beschwert warum peethebee dich angreift. Könnte vielleicht daran liegen weil du einerseits manchmal nen ziemlichen aufriss um dein Fortgeschritten machst. Und dann wieder mit deinen Posts den absolut unwissenden raushängen läßt. Soll jetzt aber keine blöde Anmache werden . Hast zich Posts mehr als ich ,aber der überwiegende teil waren nur Fragen und keine Antworten . Dein Projekt find ich ja net schlecht aber ich denke du solltest den überwiegenden teil vom Code machen und nicht die anderen für dich arbeiten lassen . Wenn ich mal so nachlesen hat dir Mignon eine Anregung gegeben was du verbessern kanst .Deine Antwort ist ok mach ich und dann weißt du net wie du es machen sollst . Das heißt denk mal an bischen nach und lass das nicht von anderen lösen.
Ein Paar Denkanstöße für die Lösung :
Senderliste in ein Array
Array in eine Datei speichern
Array bei Programmstart aus der Datei auslesen .
Da die GUICtrlSetData schlecht mit dem Array umgehen kann würde ich dei einzelnen Arrayelemente mit anschließendem | nach jedem element in einen String kopieren .Ich denke das kann man aber auch mit nen INI gut hinbekommen .Man muß sich nur ein Konzept für die INI überlegen .
So , nicht Böse sein wegen dem was ichn geschrieben haben , ist nur meine Meinung.
-
Gut , ich werde mich ejtzt zurückhalten mit meinen Fragen!
Aber noch eine Offtopic-Frage:
Was meisnt du mitZitatKönnte vielleicht daran liegen weil du einerseits manchmal nen ziemlichen aufriss um dein Fortgeschritten machst
Ich finde nicht das ich alzu große Fortschritte gemacht habe! Ich poste nur gerne meine Scripts um Feedback zu kreigen um besser zu werden das ist alles.
-