Du hast Recht - mein Fehler.
Beiträge von SEuBo
-
-
[autoit]
_GUICtrlListBox_SetSel($hListBox, -1)
[/autoit]tut's übrigens auch.
-
Zitat
Von dem lieben Kollegen SEuBo:
[autoit]
Puh, die muss aber schon richtig alt sein.MsgBox(0, "", "IP: " & _GetExtIP())
[/autoit][autoit][/autoit][autoit]Func _GetExtIP()
[/autoit]
Return BinaryToString(InetRead("http://yat.host-ed.net/", 1))
EndFunc ;==>_GetExtIP -
@DaRealBurn: Dafür ist doch die Jobbörse...
@Topic:Waren jetzt 5 minuten Arbeit: (Na gut, vllt 10 mit Funktionsbeschreibung die ich angepasst hab)
Spoiler anzeigen
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>; #FUNCTION# ===================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _IE_YT
; Description ...: YouTube API for IE.au3
; AutoIt Version : V3.3.0.0
; Requirement(s).: IE.au3
; Syntax ........: _IE_YT(ByRef $Socket[, $sCommand = "playVideo"[, $vArg1 = ""[, $vArg2 = ""[, $sPlayerID = "movie_player"]]]])
; Parameter(s): .: $oIE - IE Object
; $sCommand - Optional: (Default = "playVideo") :
; | loadWait / $vArg1 = TimeOut in ms (int), Default = 10000
; | playVideo
; | pauseVideo
; | stopVideo
; | clearVideo
; | getVideoBytesLoaded
; | getvideobytestotal
; | getVideoStartBytes
; | mute
; | unMute
; | isMuted
; | setVolume / $vArg1 = Volume (int) (min=0, max=100)
; | getVolume
; | seekTo / $vArg1 = Secs (int), $vArg2 = allowSeekAhead (boolean), Default = true
; | getPlayerState
; | getCurrentTime
; | getDuration
; | setSize / $vArg1 = height (int), $vArg2 = width (int) (min=50)
; | getVideoUrl
; | getVideoEmbedCode
; | loadVideoById / $vArg1 = id (string), $vArg2 = start (int)
; | cueVideoById / $vArg1 = id (string), $vArg2 = start (int)
; $vArg1 - Optional: (Default = "") :
; $vArg2 - Optional: (Default = "") :
; $sPlayerID - Optional: (Default = "movie_player") :
; Return Value ..: Success - Deppending on the function call
; Failure - Deppending on the function call and sets
; @ERROR - 1 = error while sending command to player or no player found
; | 2 = wrong value or datatype of $vArg1 or $vArg2
; | 3 = wrong or unsupported $sCommand
; | 4 = wrong datatype returned from API
; | 5 = TimeOut from "loadWait"
; Author(s) .....: Thorsten Willert, iLoveAU3 (loadVideoById, cueVideoById), SEuBo (modification for IE.au3)
; Remarks .......: Currently not supported: setSize (Video), addEventListener, all events
; Date ..........: Tue Apr 28 22:20:44 CEST 2009 @889 /Internet Time/
; Link ..........: http://code.google.com/intl/de-DE/api…_reference.html
; Example .......: _IE_YT($Socket,"pauseVideo"), _IE_YT($Socket,"setSize",480,385)
; ==============================================================================
Func _IE_YT($oIE, $sCommand = "playVideo", $vArg1 = "", $vArg2 = "", $sPlayerID = "movie_player")
Local $iRetSwitch StringLower($sCommand)
[/autoit] [autoit][/autoit] [autoit]
Case "loadwait"
;dummy
Case "playvideo"
$sCommand = "playVideo()"
$iRet = 0
Case "pausevideo"
$sCommand = "pauseVideo()"
$iRet = 0
Case "stopvideo"
$sCommand = "stopVideo()"
$iRet = 0
Case "clearvideo"
$sCommand = "clearVideo()"
$iRet = 0
Case "getvideobytesloaded"
$sCommand = "getVideoBytesLoaded()"
$iRet = 1
Case "getvideobytestotal"
$sCommand = "getVideoBytesTotal()"
$iRet = 1
Case "getvideostartbytes"
$sCommand = "getVideoStartBytes()"
$iRet = 1
Case "mute"
$sCommand = "mute()"
$iRet = 0
Case "unmute"
$sCommand = "unMute()"
$iRet = 0
Case "ismuted"
$sCommand = "isMuted()"
$iRet = 1
Case "setvolume"
$vArg1 = Number($vArg1)
If IsInt($vArg1) And $vArg1 >= 0 And $vArg1 <= 100 Then
$sCommand = "setVolume(" & $vArg1 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getvolume"
$sCommand = "getVolume()"
$iRet = 1
Case "seekto"
$vArg1 = Number($vArg1)
If $vArg2 = "" Or $vArg2 = Default Then $vArg2 = True
If IsInt($vArg1) And IsBool($vArg2) Then
If $vArg2 Then
$vArg2 = "true"
Else
$vArg2 = "false"
EndIf
$sCommand = "seekTo(" & $vArg1 & "," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getplayerstate"
$sCommand = "getPlayerState()"
$iRet = 1
Case "getcurrenttime"
$sCommand = "getCurrentTime()"
$iRet = 1
Case "getduration"
$sCommand = "getDuration()"
$iRet = 1
Case "setsize"
$vArg1 = Number($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = 0 Or $vArg2 = Default Then $vArg2 = $vArg1
If IsInt($vArg1) And IsInt($vArg2) And $vArg1 > 50 And $vArg2 > 50 Then
$sCommand = "setSize(" & $vArg1 & "," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getvideourl"
$sCommand = "getVideoUrl()"
$iRet = 2
Case "getvideoembedcode"
$sCommand = "getVideoEmbedCode()"
$iRet = 2
Case "loadVideoById"
$vArg1 = String($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = Default Or $vArg2 = "" Then $vArg2 = 0
If IsString($vArg1) And IsNumber($vArg2) Then
$sCommand = "loadVideoById('" & $vArg1 & "'," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
Case "cueVideoById"
$vArg1 = String($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = Default Or $vArg2 = "" Then $vArg2 = 0
If IsString($vArg1) And IsNumber($vArg2) Then
$sCommand = 'cueVideoById("' & $vArg1 & '",' & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
Case Else
SetError(3)
Return -2
EndSwitchIf $sCommand <> "loadwait" Then
[/autoit] [autoit][/autoit] [autoit]
Local $vRetVal = $oIE.document.parentwindow.execScript(StringFormat("try{document.getElementById('%s').%s;}catch(e){'_IE_YT_Error'}", $sPlayerID, $sCommand))
If Not @error And $vRetVal <> "_IE_YT_Error" Then
Switch $iRet
Case 0
If $vRetVal = "" Then
Return $vRetVal
Else
SetError(4)
Return ""
EndIf
Case 1
If IsNumber(Number($vRetVal)) Then
Return $vRetVal
Else
SetError(4)
Return -2
EndIf
Case 2
If IsString($vRetVal) Then
Return $vRetVal
Else
SetError(4)
Return ""
EndIf
EndSwitch
Else
SetError(1)
Return -2
EndIf
Else
If $vArg1 = "" Or Not IsInt(Number($vArg1)) Then $vArg1 = 10000
Local $TimeOutTimer = TimerInit()
Local $sState
Do
$sState = _IE_YT("getPlayerState")
If @error Then Return 0
Sleep(500)
If TimerDiff($TimeOutTimer) > $vArg1 Then
SetError(5)
Return 0
EndIf
Until $sState <= 3 Or $sState = "_IE_YT_Error"
Return 1
EndIfEndFunc ;==>_IE_YT
[/autoit]Ich hab nur
[autoit]Local $vRetVal = _FFCmd(StringFormat("try{window.content.wrappedJSObject.document.getElementById('%s').%s;}catch(e){'_FF_YT_Error'}", $sPlayerID, $sCommand))
[/autoit]
[autoit]
durchLocal $vRetVal = $oIE.document.parentwindow.execScript(StringFormat("try{document.getElementById('%s').%s;}catch(e){'_IE_YT_Error'}", $sPlayerID, $sCommand))
[/autoit]
ersetzt (und die Funktion _FFB2S rausgeschmissen) -
__FFSend ==> Socket Error
_FFConnect / _FFStart fehlt oder war nicht erfolgreich.
Das kann daran liegen, dass du es vergessen hast oder MozRepl nicht installiert / aktiviert ist. -
-
Edit:Ahh wie ich das sehe müssen für and einfach in der klammer zusammengeschriben werden:
[autoit]
Fast Richtig.
Für AND benutzt man eigene Zeichenklassen.
Um zb alle Zeichen anzuzeigen, die weder Zahlen noch WhiteSpaces sind, nutzt man [^\d\s].
Falsch wäre dagegen [\D\S] (obwohl das ja auf den ersten Blick richtig aussieht), weil das alle zeichen findet, die Keine Zahlen und keine Whitespaces sind. Das ist ein Wiederspruch, weil "Keine Zahl" Whitespaces findet, und "Keine WhiteSpaces" Zahlen findet. :confused:
[^\d\s] dagegen findet "Keine Zahlen und WhiteSpaces". Besser kann ich's leider nicht erklären. Aber ich kann dir noch ein Beispiel zeigen.#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
$sText = "abcdefghijklmnopqrstuvwxyz234567890ß´!""§$%&/()=?`+*~#'-_.:,;<>|^°"
$aRet = StringRegExp($sText,'[\D\S]',3)
_ArrayDisplay($aRet,"Falsch [\D\S]")$aRet = StringRegExp($sText,'[^\d\s]',3)
[/autoit]
_ArrayDisplay($aRet,"Richtig [^\d\s]")(\S\D) findet allerdings 2 aufeinanderfolgende Zeichen, von denen das erste Kein WhiteSpace, und das zweite keine Zahl sein darf.
-
File -> Encoding
-
[autoit]
$hDummy = GUICreate("DUMMY")
[/autoit][autoit][/autoit][autoit]
$hGUI = GUICreate("Ich bin nicht in der Taskleiste",400,400,-1,-1,Default,Default,$hDummy)
GUISetState()While GUIGetMsg() <> -3
[/autoit]
WEnd -
Hallo yxyx,
Deine erste Version geht so kürzer:
[autoit]Func _Mouse_bereich_1($iLeft, $iTop, $iRight, $iBottom)
[/autoit]
local $Mousepos = MouseGetPos()
Return ($Mousepos[0] >= $iLeft And $Mousepos[0] <= $iRight) and ($Mousepos[1] >= $iTop And $Mousepos[1] <= $iBottom)
EndFuncUnd deine zweite geht so kürzer:
[autoit]Func _Mouse_bereich_($iLeft, $iTop, $iRight, $iBottom)
[/autoit]
Local $tRECT = DllStructCreate('int Left;int Top;int Right;int Bottom'), $aMPos = MouseGetPos(), $aRet
DllCall("user32", 'long', 'SetRect', 'ptr', DllStructGetPtr($tRECT), 'long', $iLeft, 'long', $iTop, 'long', $iRight, 'long', $iBottom)
$aRet = DllCall("user32", 'long', 'PtInRect', 'ptr', DllStructGetPtr($tRECT), 'long', $aMPos[0], 'long', $aMPos[1])
Return $ret[0] > 0
EndFuncWollte das nur mal loswerden
-
Coole Sache, ist sehr gut geworden!
-
Die Funktion
[autoit]SRandom
[/autoit]könnte auch noch interessant sein.
-
Hallo bernd,
Mal folgendes Vorweg: Nutze bitte in Zukunft die AutoIt-Tags für AutoIt Code. Das macht das ganze wesentlich übersichtlicher.
weil ich es nicht besser wußte. Wenn ich den Hinweis richtig verstehe, funktioniert das wohl nur bei selbst erstellten Fenstern.
Richtig. Um den Handle eines externen Controls auszulesen, nutzt man ControlGetHandle().Die WordPad-Versuche kann ich unter Win 7 leider nicht testen. Sobald ich versuche auf die RichEdit zuzugreifen stürzt WordPad bei mir ab.
Die Farbinformationen werden mitgespeichert, ja. Ich weiß aber nicht wie und wo. Versuch dich im Falle des Falles mal mit den _ClipBoard_... Funktionen.
Ein anderer Lösungsweg der mir grad durch den Kopf schießt, wäre folgender:
Du kopierst den gesamten Inhalt deiner RichEdit in eine RichEdit auf deiner GUI, (und hoffentlich werden die Farbinformationen und Formatierungen mitkopiert), und kannst dann hoffentlich mit den RichEdit Funktionen arbeiten.LG
-
Erstell mal jeden Browser auf einem eigenen Child GUI. Nutze dafür den Style $WS_POPUP und den ExStyle $WS_EX_MDICHILD. Statt das Browser-Control ein- und auszublenden, blendest du dann nur noch die Child GUIs ein und aus.
-
Das rote bedeutet doch alles außer [ oder $.
Nein, das bedeutet entweder [ (was die nächste Section wäre) oder $ was für das String- oder in unserem Fall Dateiende steht.Alles außer [ und $ wäre das hier:
oder das, wenn man's genau nimmt -
Es ist doch ein externes Fenster. Was machst du dann mit GUICtrlGetHandle?
[autoit]$hwnd = ControlGetHandle("CS-STATIK","","[CLASS:RICHEDIT50W; INSTANCE:1]")
[/autoit]
$iCol = _GUICtrlRichEdit_GetCharColor($hwnd)
MsgBox(0,"",$iCol) -
Alternativ könntest du mal _IEErrorHandlerRegister benutzen, um die Fehler abzufangen.
-
Leider ist es damit nicht möglich eine spezielle Sektion auszulesen. Somit also auch suboptimal.
Naja daran solls nicht scheitern - das ist eine Zeile mehr die man schreiben muss. Hier mal in ne Funktion verpackt:Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$sText = "[Section]" & @CRLF & "Datei232 = Wert 1" & @CRLF & "Datei233 =" & @CRLF & "Datei234 = Wert 3" & @CRLF & "Datei235= Wert 4" & @CRLF & "Datei236 =Wert 5" & @CRLF & "Datei237=Wert 6" & @CRLF & "= Wert 7" & @CRLF & "" & @CRLF & "[Section2]" & @CRLF & "Datei232 = Wert 1" & @CRLF & "Datei233 =" & @CRLF & "Datei234 = Wert 3" & @CRLF & "Datei235= Wert 4" & @CRLF & "Datei236 =Wert 5" & @CRLF & "Datei237=Wert 6" & @CRLF & "= Wert 7" & @CRLF & "" & @CRLF & "[Section3]" & @CRLF & "Datei232 = Wert 1" & @CRLF & "Datei233 =" & @CRLF & "Datei234 = Wert 3" & @CRLF & "Datei235= Wert 4" & @CRLF & "Datei236 =Wert 5" & @CRLF & "Datei237=Wert 6" & @CRLF & "= Wert 7"
FileDelete(@ScriptDir & "\testini.ini")
FileWrite(@ScriptDir & "\testini.ini",$sText)
ShellExecuteWait(@ScriptDir & "\testini.ini")$aRet = _IniReadSection(@ScriptDir & "\testini.ini",'Section3')
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aRet)Func _IniReadSection($sPath,$sSection)
[/autoit] [autoit][/autoit] [autoit]
Local $sText, $aSection, $aRet
$sText = FileRead($sPath)
$aSection = StringRegExp($sText,'(?is)\Q['&$sSection&']\E(.+?)(?:\[|$)',1)
If Not @error Then Return _RegExp($aSection[0], '(.*?)\h*=\h*([^\v]*)')
EndFuncFunc _RegExp($sTest, $sPattern, $iOffset = 0)
[/autoit] [autoit][/autoit] [autoit]
; Easy RegExp with >1 Subpattern (SEuBo)
Local $aRet, $iUB, $iUB2, $aDummy, $aNewArr
$aRet = StringRegExp($sTest, $sPattern, 4, $iOffset)
If @error Then Return ConsoleWrite(@extended & @CRLF)Local $iUB = UBound($aRet), $iUB2 = UBound($aRet[0]), $aNewArr[$iUB][$iUB2 - 1]
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To $iUB - 1
Local $aDummy = $aRet[$i], $iUBD = UBound($aDummy)If $iUBD - 1 > $iUB2 Then
[/autoit]
$iUB2 = $iUBD
ReDim $aNewArr[$iUB][$iUB2]
EndIf
For $j = 1 To $iUBD - 1
$aNewArr[$i][$j - 1] = $aDummy[$j]
Next
Next
Return $aNewArr
EndFunc ;==>_RegExp -
Hier... Das ganze kann auch "kaputte" Ini's auslesen... denke ich...
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
$sText = _
"[Section]" & @CRLF & _
"Datei232 = Wert 1" & @CRLF & _
"Datei233 =" & @CRLF & _
"Datei234 = Wert 3" & @CRLF & _
"Datei235= Wert 4" & @CRLF & _
"Datei236 =Wert 5" & @CRLF & _
"Datei237=Wert 6" & @CRLF & _
"= Wert 7" & @CRLF
;~ $sText = FileRead(@ScriptDir & "\pfadzurini.ini")$aRet = _RegExp($sText, '(.*?)\h*=\h*([^\v]*)')
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aRet)Func _RegExp($sTest, $sPattern, $iOffset = 0)
[/autoit] [autoit][/autoit] [autoit]
; Easy RegExp with >1 Subpattern (SEuBo)
Local $aRet, $iUB, $iUB2, $aDummy, $aNewArr
$aRet = StringRegExp($sTest, $sPattern, 4, $iOffset)
If @error Then Return ConsoleWrite(@extended & @CRLF)Local $iUB = UBound($aRet), $iUB2 = UBound($aRet[0]), $aNewArr[$iUB][$iUB2 - 1]
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To $iUB - 1
Local $aDummy = $aRet[$i], $iUBD = UBound($aDummy)If $iUBD - 1 > $iUB2 Then
[/autoit]
$iUB2 = $iUBD
ReDim $aNewArr[$iUB][$iUB2]
EndIf
For $j = 1 To $iUBD - 1
$aNewArr[$i][$j - 1] = $aDummy[$j]
Next
Next
Return $aNewArr
EndFunc ;==>_RegExp -
Du verwechselst den Fenster Handle (hWnd) mit einem Control Handle.
Von SplashTextOn bekommst du den Fenster Handle zurück. Du kannst diesen Handle in den meisten Funktionen statt dem Fenstertitel verwenden. Auch in ControlSetText - allerdings als ersten Parameter.Static1 ist das Label auf dem SplashText-Fenster. Dieses musst du natürlich auch bei ControlSetText angeben, da sonst kein Control "ausgewählt" ist.