- Offizieller Beitrag
In Zeile 72: $msg = GUIGetMsg()
Wozu? Das wird a) nicht gebraucht und b) stört es dein Skript da du im OnEvent-Modus arbeitest. Eines geht nur.
In Zeile 72: $msg = GUIGetMsg()
Wozu? Das wird a) nicht gebraucht und b) stört es dein Skript da du im OnEvent-Modus arbeitest. Eines geht nur.
Hallo Bugfix!
ist raus...
Danke für den Hinweis
Nachtrag: Post 1 ist bearbeitet... Leider ist immer noch nicht mein Problem behoben.
In Zeile 40 sollte das stehen:
[autoit]GUICtrlSetOnEvent($exit, "CLOSEClicked")
[/autoit]Hallo!
Es Funktioniert... Aber eben nicht wenn man einen Channel aufgewählt hat und er anfängt die Datei herunter zu laden!
Nix zu machen, der will einfach nicht aufhören
Danke Raupi für den Tipp, aber leider war es das nicht!
@noise: versuche mal diese schleife:
[autoit]
while @InetGetActive
$nMsg = GUIGetMsg()
Switch $nMsg
Case $exit
InetGet( 'abort' )
EndSwitch
GUICtrlSetData($lbl_filename, ""& $res3[$i+1] & " - " & $res2[$i+1] & ".mp3" & "")
sleep (100)
;$percent = Round((@InetGetBytesRead / ((($res[$i] / 1000) * 128 * 1024) / 8)) * 100, 2)
;GUICtrlSetData($progress, $percent)
WEnd
andygo das wird nicht funktionieren. Das Script arbeitet im OnEventMode. GuiGetMsg funktioniert dabei nicht.
andygo das wird nicht funktionieren. Das Script arbeitet im OnEventMode. GuiGetMsg funktioniert dabei nicht.
stimmt. dann eben vor die schleife
[autoit]Opt("GuiOnEventMode", 0)
[/autoit]
und nach der schleife
Opt("GuiOnEventMode", 1)
[/autoit]so benutz ich es selbst und es klappt
Hallo!
Danke für die Tipps...
Gibt es noch eine Möglichkeit?
Weil so, reagiert er nur auf den Stop Button und nicht auf das X Rechts oben,
dass er evtl. das Script sofort beendet!?
Noch jemand eine Idee?
Ich habe auch oft das Problem, dass ich nach gestartetem Script nicht mehr alle Funktionen benutzen kann, auch mit OnEvent-Zeug...
z.B. -> Programm hat nen falschen Value in einen Input bekommen, gibt ne Fehler-MSG-Box und dann schicke ich den Bediener in einer Schleife... "Sleep (60000)"...
Und dann kann er den Eintrag in dem Input ja korrigieren, aber NICHTS sonst mehr im GUI bedienen...
Bisher hatte ich das in jedem meiner Scripte, dass ich das nicht perfekt lösen konnte und bei sowas das Script beenden lassen musste...
Also wäre auch sehr dankbar, wenn das Problem jemand löst(allgemein)... Oo
Ich hatte erst immer "Sleep (10)" und jemand meinte zu mir, dass jedes Mal, wenn das Script einen Befehl bearbeitet, OnEvent-Zeugs nicht klappt, ich also Sleep (60000) machen sollte, dann würde es gehen... Ging leider nicht...
LG
Hallo!
Danke für die Tipps...
Gibt es noch eine Möglichkeit?
Weil so, reagiert er nur auf den Stop Button und nicht auf das X Rechts oben,
dass er evtl. das Script sofort beendet!?
Noch jemand eine Idee?
evtl. so: ?
[autoit]
Opt("GuiOnEventMode", 0)
while @InetGetActive
$nMsg = GUIGetMsg()
Switch $nMsg
Case $exit
InetGet( 'abort' )
exit
Case $form1
InetGet( 'abort' )
exit
EndSwitch
GUICtrlSetData($lbl_filename, ""& $res3[$i+1] & " - " & $res2[$i+1] & ".mp3" & "")
sleep (100)
WEnd
Opt("GuiOnEventMode", 1)
Hallo,
ich weis nicht so recht ob das hilft aber Vielleicht nütz CoProc was
http://www.autoitscript.com/forum/index.php?showtopic=29326
Sleep pausiert dein Script. Statt einem Sleep(6000) verwendest du am besten
[autoit]$timer = TimerInit()
Do
sleep(10)
;... hier noch das ganze GUIgetMsgZeug falls du es brauchst.
until TimerDiff($timer) > 6000
Hi!
Funktioniert irgendwie alles nicht..
So damit ihr das auch mal Testen könnt:
RequireAdmin
#include <array.au3>
#include <inet.au3>
#include <string.au3>
#Include <Constants.au3>
$Form1 = GUICreate("Ripper BETA DEMO by Noise", 395, 225, 192, 124)
$lbl_filename = GUICtrlCreateLabel("", 8, 160, 372, 20)
$okbutton = GUICtrlCreateButton("OK", 304, 16, 57, 23, 0)
;GUICtrlSetOnEvent($okbutton, "OKButton")
GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $okbutton
start()
Sleep(1000) ; Im Leerlauf bummeln
Case $form1
InetGet( 'abort' )
exit
EndSwitch
WEnd
func start()
$result = _INetGetSource ( "http://ext.last.fm/2.0/?api%5Fsig=49404566dfc9126dd7807cbfe9a6d4e6&flashresponse=true&lang=de&fod=true&sk=fea1c8f4570bf185a1c4d6853105b29c&y=1258573209&api%5Fkey=da6ae1e99462ee22e81ac91ed39b43a4&method=radio%2EgetPlaylist" )
$res = _StringBetween($result,"<location>", "</location>")
$res2 = _StringBetween($result,"<title>", "</title>")
$res3 = _StringBetween($result,"<creator>", "</creator>")
for $i = 0 to UBound($res) -1
InetGet($res[$i], $res3[$i+1] & " - "& $res2[$i+1] & ".mp3",1,1)
While @InetGetActive
GUICtrlSetData($lbl_filename, ""& $res3[$i+1] & " - " & $res2[$i+1] & ".mp3" & "")
ToolTip("Bytes gedownloadet! = " & @InetGetBytesRead)
Wend
next
EndFunc
start()
#RequireAdmin
#include <array.au3>
#include <inet.au3>
#include <string.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
$Form1 = GUICreate("Ripper BETA DEMO by Noise", 395, 225, 192, 124)
$lbl_filename = GUICtrlCreateLabel("", 8, 160, 372, 20)
$okbutton = GUICtrlCreateButton("OK", 304, 16, 57, 23, 0)
;GUICtrlSetOnEvent($okbutton, "OKButton")
GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $okbutton
start()
Case $GUI_EVENT_CLOSE
InetGet('abort')
Exit
EndSwitch
WEnd
Func start()
$result = _INetGetSource("http://ext.last.fm/2.0/?api%5Fsig=49404566dfc9126dd7807cbfe9a6d4e6&flashresponse=true&lang=de&fod=true&sk=fea1c8f4570bf185a1c4d6853105b29c&y=1258573209&api%5Fkey=da6ae1e99462ee22e81ac91ed39b43a4&method=radio%2EgetPlaylist")
$res = _StringBetween($result, "<location>", "</location>")
$res2 = _StringBetween($result, "<title>", "</title>")
$res3 = _StringBetween($result, "<creator>", "</creator>")
For $i = 0 To UBound($res) - 1
InetGet($res[$i], $res3[$i + 1] & " - " & $res2[$i + 1] & ".mp3", 1, 1)
While @InetGetActive
If GUICtrlRead($lbl_filename) <> $res3[$i + 1] & " - " & $res2[$i + 1] & ".mp3" Then GUICtrlSetData($lbl_filename, $res3[$i + 1] & " - " & $res2[$i + 1] & ".mp3")
ToolTip("Bytes gedownloadet! = " & @InetGetBytesRead)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
InetGet('abort')
Exit
Case $okbutton
InetGet('abort') ; der download wird abgebrochen, und der nächste gestartet.
ToolTip("")
;~ Case $Abbruchbutton ;den knopf gibts nocht nicht, aber so würdest du ALLE downloads abbrechen
;~ InetGet('abort')
;~ ToolTip("")
;~ ExitLoop
EndSwitch
WEnd
Next
EndFunc ;==>start
[/autoit][autoit][/autoit][autoit][/autoit]
^Mehr kann man dazu nicht sagen!
Danke schön an alle die mir geholfen haben, vorallen Bugfix den ich so genervt hab!!!
Gruß Noise
Das ist ja wieder mit GetMsg... Gibts keine Lösung mit OnEvent :(?