InetRead Problem (mal wieder)

  • Hallo, ich hab das Script von tuttifrutti mit meinem Verbunden bzw. bin ich grad dabei (d.h. sind bestimmt noch mehr Fehler drin :D)
    Also ich hab folgendes Problem:
    Sobald ich irgendein Ort eingebe erkennt er es nicht!
    Der Teil ist hier:

    [autoit]

    $Wohnort = InputBox("Ihr Wohnort", "Da Sie das Programm zum ersten mal starten, sind Sie aufgefordert Ihren Wohnort zu schreiben." & @CRLF & @CRLF & "So wird das Programm ihr Persöhnliches Wetter herraus finden und ihren Ort anzeigen!" & @CRLF & @CRLF & "Viel Spaß " & @CRLF & "© Alexander F. (Wetter) & Simon K. (Open World)", "Ihren Wohnort", " ", "360", "260", "-1", "-1")
    $urlort = "http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&city=" & $Wohnort
    ClipPut($urlort)
    $oData = InetRead($urlort)
    $sData = $nBytesRead & @CRLF & @CRLF & BinaryToString($oData)
    $xmllon = _StringBetween($sData, "<Longitude>", "</Longitude>")
    If IsArray($xmllon) Then
    $xmllon = $xmllon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $xmllat = _StringBetween($sData, "<Latitude>", "</Latitude>")
    If IsArray($xmllat) Then
    $xmllat = $xmllat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    ConsoleWrite("XML " & $xmllon & " " & $xmllat & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    $hFile = FileOpen($sFileName, 0)
    $sText = FileRead($hFile)
    FileClose($hFile)
    $Lon = _StringBetween($sText, "var lon =", ";")
    If IsArray($Lon) Then
    $Lon = $Lon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $Lat = _StringBetween($sText, "var lat =", ";")
    If IsArray($Lat) Then
    $Lat = $Lat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    $Zoom = _StringBetween($sText, "var zoom = ", ";")
    If IsArray($Zoom) Then
    $Zoom = $Zoom[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    $sZoom = 10
    $sText = StringReplace($sText, $Zoom, $sZoom)
    $sText = StringReplace($sText, $Lon, $xmllon)
    $sText = StringReplace($sText, $Lat, $xmllat)
    ConsoleWrite("HTML " & $Lon & " " & $Lat & @CRLF)
    $hFile = FileOpen($sFileName, 2)
    FileWrite($hFile, $sText)
    FileClose($hFile)

    [/autoit]


    Das Script hat mehr als 100.000 Zeichen :rofl: darum ist es nun bei PasteBin:
    http://autoit.pastebin.com/HzJpuf9n
    Die OWB.au3:
    http://autoit.pastebin.com/ngPsBEVg

  • Ich würde vorschlange Binary in eine Include und nochmal posten. So hat mein 0 Überblick!

  • Jedoch kann ich das Script nicht testen da es immer Verschwindet!

    Ich auch nicht, da es sich direkt nach der Eingabe eines Wohnortes verabschiedet! (Längen-Breitengrad falsch!)

    Das Script hat mehr als 100.000 Zeichen :rofl: darum ist es nun bei PasteBin:

    dann kürze es um alle unnötige funcs, sind sicher noch mehr:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <WinAPI.au3>
    #include <ListViewConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <SliderConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $IE = _IECreateEmbedded()
    Global $picexit
    Local $mExit, $mSettings, $picsettings, $picabout, $About, $Wetter, $sonne, $Anzeige
    Global $html
    Local $sFileName = "start.html"
    Local $1FileName = "seastart.html"
    Local $nBytesRead = @extended
    Dim $adr, $stre, $plz, $stadt, $aland
    $url0 = "http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&address=" & $adr
    $url1 = "&street=" & $stre
    $url2 = "&zip=" & $plz
    $url3 = "&state=" & $stadt
    $url4 = "&country=" & $aland
    $url = $url0 & $url1 & $url2 & $url3 & $url4
    $map = 100

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Open World Browser by Simon K. - EUROS4YOU.COM", 1204, 836, 118, 112)
    $Pic1 = GUICtrlCreateObj($IE, 0, 136, 1201, 697)
    $city = GUICtrlCreateInput("", 16, 24, 201, 21)
    $street = GUICtrlCreateInput("", 16, 48, 201, 21)
    $num = GUICtrlCreateInput("", 224, 48, 57, 21)
    $zip = GUICtrlCreateInput("", 288, 48, 65, 21)
    $Group1 = GUICtrlCreateGroup("Stadt, Straße, Hausnummer, Postleitzahl", 8, 8, 361, 73)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Land", 376, 8, 241, 73)
    $land = GUICtrlCreateInput("", 384, 24, 225, 21)
    $search = GUICtrlCreateButton("Suche", 384, 48, 227, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Zum Mond", 664, 8, 529, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Zur Welt", 664, 38, 529, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Zur See Karte", 664, 67, 529, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("About/Über", 664, 96, 529, 25, $WS_GROUP)
    $OWBFunks = GUICtrlCreateMenu("Funktionen")
    $OWBWetter = GUICtrlCreateMenuItem("Wetter AN/AUS", $OWBFunks)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    Dim $hTrayAbout, $hTrayBlank2, $hTrayExit, $hTrayAnzeigen, $hTrayBlank3, $hTrayEinstellungen
    Opt("TrayMenuMode", 3)
    Opt("TrayOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Color = 0x545454
    $vGUIColor = 0x161616
    $Title = "Desktop Wetter"
    ;~ $Sliderwert = 250
    $INI = @ScriptDir & "\Data\Einstellungen.ini"
    $setting1 = IniRead($INI, "Setting 1", "run", "")
    $setting2 = IniRead($INI, "Setting 2", "run", "")
    $ausrichtung = IniRead($INI, "Ausrichtung", "Wert", "")
    $abstand = IniRead($INI, "Abstand", "Wert", "")
    $zent = IniRead($INI, "Zentrierung", "Wert", "")
    $Postleitzahl = IniRead($INI, "PLZ", "Wert", "")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $Postleitzahl = "1337" Then
    If Not IsDeclared("sInputBoxAnswer") Then Local $sInputBoxAnswer
    $Postleitzahl = InputBox("Ihre Postleitzahl", "Da Sie das Programm zum ersten mal starten, sind Sie aufgefordert Ihre Postleitzahl zu schreiben." & @CRLF & @CRLF & "So wird das Programm ihr Persöhnliches Wetter herraus finden und ihren Ort anzeigen!" & @CRLF & @CRLF & "Viel Spaß " & @CRLF & "© Alexander F. (Wetter) & Simon K. (Open World)", "Ihre Postleitzahl", " ", "350", "260", "-1", "-1")
    Select
    Case @error = 0 ;OK - The string returned is valid

    [/autoit] [autoit][/autoit] [autoit]

    Case @error = 1 ;The Cancel button was pushed
    Exit
    Case @error = 3 ;The InputBox failed to open
    Exit
    EndSelect
    IniWrite($INI, "PLZ", "Wert", $Postleitzahl)
    ;~ MsgBox(0,"","" & $sInputBoxAnswer)
    EndIf
    $Funkstart = _Wohnort()
    _IENavigate($IE, @ScriptDir & "/start.html")

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists(@ScriptDir & "\Data\") Then
    DirCreate(@ScriptDir & "\Data\")
    EndIf
    If Not FileExists(@ScriptDir & "\Data\Bilder\") Then
    DirCreate(@ScriptDir & "\Data\Bilder")
    EndIf
    If Not FileExists($INI) Then
    IniWrite($INI, "Copyright", "Titel", "(C) Alexander F. 2010 - 2011")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $hGui, $hImage, $hGraphic, $hImage1, $Slider1, $sliderzent, $sliderabstand, $Combo1

    [/autoit] [autoit][/autoit] [autoit]

    Local $Sonst[5] = ["Stadt: N/A", "WetterStatus: N/A", "Temperatur: N/A", "Wind: N/A", "Luftfeuchtigkeit: N/A"]
    Global $Pcode[1][2] = [[$Postleitzahl, ""]]

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $picexit, $mExit ; ,$exitContext
    GUISetState(@SW_HIDE, $hGui)
    Case $mSettings, $picsettings
    _Einstellungen()
    Case $picabout, $About
    _About()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    $map = 100
    _IENavigate($IE, @ScriptDir & "/start.html")
    Case $Button3
    $map = 10
    _IENavigate($IE, @ScriptDir & "/seastart.html")
    Case $search
    If $map = 10 Then
    $func = _Sea()
    Else
    $func = _World()
    EndIf
    Case $Button4
    _About()
    Case $OWBFunks
    If $Wetter = 1 Then
    GUISetState(@SW_HIDE, $hGui)
    Else
    _Weather()
    EndIf
    EndSwitch
    WEnd
    Func _Exit()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Weather()
    ; ====== GUI =======
    $hGui = GUICreate("Desktop Wetter", 160, 245, @DesktopWidth - 160, (@DesktopHeight - 245) / 2, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW));,$WS_EX_CONTROLPARENT))
    If $ausrichtung = "Rechts" Then
    ;~ WinMove("Desktop Wetter", "", @DesktopWidth - 160, (@DesktopHeight - 245) / 2)
    WinMove("Desktop Wetter", "", @DesktopWidth - 160 - $abstand, $zent)
    EndIf
    If $ausrichtung = "Links" Then
    ;~ WinMove("Desktop Wetter", "", 0, (@DesktopHeight - 245) / 2)
    WinMove("Desktop Wetter", "", $abstand, $zent)
    EndIf
    If $setting1 = "yes" Then
    WinSetOnTop("Desktop Wetter", "", 1)
    EndIf
    If $setting2 = "yes" Then
    WinSetOnTop("Desktop Wetter", "", 0)
    EndIf
    TraySetIcon(@ScriptDir & "\Weather.ico")

    [/autoit] [autoit][/autoit] [autoit]

    $Menu = GUICtrlCreateContextMenu()
    $mSettings = GUICtrlCreateMenuItem("Einstellungen...", $Menu)
    $mExit = GUICtrlCreateMenuItem("Wetter Beenden...", $Menu)
    GUICtrlCreateMenuItem("", $Menu)
    $About = GUICtrlCreateMenuItem("Über Uns...", $Menu)
    GUISetBkColor($Color, $hGui)
    ;~ Global $Gruppe[1] = [GUICtrlCreateGroup("", 4, 8, 185, 129)]
    ;~ Global $Anzeige[1] = [GUICtrlCreateEdit("", 8, 24, 150, 75, BitOR($ES_AUTOHSCROLL, $ES_NOHIDESEL,$ES_READONLY,$ES_WANTRETURN), 0)]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $Anzeige[1] = [GUICtrlCreateListView("", 8, 14, 140, 95, BitOR($LVS_LIST, $LVS_SHOWSELALWAYS))]
    _GUICtrlListView_SetExtendedListViewStyle(-1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $Color)

    [/autoit] [autoit][/autoit] [autoit]

    ; KLAPPT NET !
    $contextmenu = GUICtrlCreateContextMenu($Anzeige)
    $Context = GUICtrlCreateMenuItem("Einstellungen...", $contextmenu)
    $exitContext = GUICtrlCreateMenuItem("Wetter Beenden...", $contextmenu)
    GUICtrlCreateMenuItem("", $contextmenu)
    $aboutcontext = GUICtrlCreateMenuItem("Über Uns...", $contextmenu)

    [/autoit] [autoit][/autoit] [autoit]

    ; == BILDER ==
    $sonne = GUICtrlCreatePic("", 15, 110, 0, 0);,$WS_EX_CONTROLPARENT)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $picmenu = GUICtrlCreateContextMenu($sonne)
    $picsettings = GUICtrlCreateMenuItem("Einstellungen...", $picmenu)
    $picexit = GUICtrlCreateMenuItem("Wetter Beenden...", $picmenu)
    GUICtrlCreateMenuItem("", $picmenu)
    $picabout = GUICtrlCreateMenuItem("Über Uns...", $picmenu)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Sliderwert = IniRead($INI, "Slider", "Wert", "")
    WinSetTrans($hGui, "", $Sliderwert)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
    Update()
    AdlibRegister("Update", 60000) ; Jede Minute

    [/autoit] [autoit][/autoit] [autoit]

    TraySetToolTip("" & $Title)
    TraySetClick(16)
    TraySetOnEvent(-13, "_Doubleclick") ;Doubleclick
    TraySetOnEvent(-9, "_Rightclick") ;Rightclick
    TraySetOnEvent(-7, "")
    $Wetter = 1
    EndFunc ;==>_Weather
    Func Update()
    For $i = 0 To 0
    SetData($i)
    Next
    ;~ WinSetTitle("Desktop Wetter", "", "Desktop Wetter | " & @HOUR & ":" & @MIN)
    EndFunc ;==>Update
    Func SetData($index)
    $aTmp = _getXML_Weather_data($Pcode[$index][0])
    If IsArray($aTmp) Then
    ;~ GUICtrlSetData($Gruppe[$index], $Pcode[$index][1])

    [/autoit] [autoit][/autoit] [autoit]

    Switch $aTmp[1]
    ; ==============================================================================
    Case "Meistens Bewölkt"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "29.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    Case "Bewölkt"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "26.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    Case "Klar"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "33.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    Case "Leichter Regen"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "11.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    Case "Regen"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "12.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    Case "Teils Bewölkt"
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "30.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)

    [/autoit] [autoit][/autoit] [autoit]

    ; ==============================================================================
    EndSwitch
    ;~ GUICtrlSetData($Anzeige[$index], $aTmp[1] & @CRLF & $aTmp[2] & @CRLF & $aTmp[3] & @CRLF & $aTmp[4] & @CRLF)
    _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[1]); & @CRLF & $aTmp[2] & @CRLF & $aTmp[3] & @CRLF & $aTmp[4] & @CRLF)
    _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[2])
    _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[3])
    _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[4])

    [/autoit] [autoit][/autoit] [autoit]

    Else
    ;~ GUICtrlSetData($Gruppe[$index], $Sonst[0])
    ;~ GUICtrlSetData($Anzeige[$index], $Sonst[1] & @CRLF & $Sonst[2] & @CRLF & $Sonst[3] & @CRLF & $Sonst[4] & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_AddItem($Anzeige[$index], $Sonst[1]); & @CRLF & $Sonst[2] & @CRLF & $Sonst[3] & @CRLF & $Sonst[4] & @CRLF)
    _GUICtrlListView_AddItem($Anzeige[$index], "Bitte gehen Sie in die")
    _GUICtrlListView_AddItem($Anzeige[$index], "Einstellungen...")
    ;~ _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[2])
    ;~ _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[3])
    ;~ _GUICtrlListView_AddItem($Anzeige[$index], $aTmp[4])

    [/autoit] [autoit][/autoit] [autoit]

    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Data\Bilder\" & "NA.png")
    $hImage = _GDIPlus_BitmapCreateHBITMAPFromBitmap($image)
    _SetBitmapToCtrl($sonne, $hImage)
    EndIf
    EndFunc ;==>SetData
    Func _getXML_Weather_data($Pcode)
    $Source = _INetGetSource("http://www.google.com/ig/api?weather=" & $Pcode & '&hl=de')
    $ntype = _StringBetween($Source, '<problem_cause data="', '"/>')
    If IsArray($ntype) Then
    MsgBox(64, "Error", "Die Postleitzahl wurde nicht gefunden oder falsch geschrieben." & @CRLF & @CRLF & "Daher gehen Sie bitte in die Einstellungen" & @CRLF & "und schreiben eine neue Postleitzahl," & @CRLF & "damit das Programm diese erkennt." & @CRLF & @CRLF & "Dankeschön Ihr Team")
    ;~ options()
    Return
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Api = "http://www.google.com/ig/api?weather=" & $Pcode & '&hl=de'
    $XML_Source = _INetGetSource($Api)
    $city = _StringBetween($XML_Source, '<city data="', '"/>')
    $Wstatus = _StringBetween($XML_Source, '<condition data="', '"/>')
    $Temp = _StringBetween($XML_Source, '<temp_c data="', '"/>')
    $Wind = _StringBetween($XML_Source, '<wind_condition data="', '"/>')
    $Humidity = _StringBetween($XML_Source, '<humidity data="', '"/>')
    Local $MyWeather[5] = [$city[0], $Wstatus[0], $Temp[0] & " °C", $Wind[0], $Humidity[0]]
    Return $MyWeather

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_getXML_Weather_data
    ; =========================== WETTER VORBEI ==============================
    ; =========================== BILDER =====================================
    Func _SetBitmapToCtrl($CtrlId, $HBITMAP)
    Local Const $STM_SETIMAGE = 0x0172
    Local Const $STM_GETIMAGE = 0x0173
    Local Const $BM_SETIMAGE = 0xF7
    Local Const $BM_GETIMAGE = 0xF6
    Local Const $IMAGE_BITMAP = 0
    Local Const $SS_BITMAP = 0x0E
    Local Const $BS_BITMAP = 0x0080
    Local Const $GWL_STYLE = -16

    [/autoit] [autoit][/autoit] [autoit]

    Local $hWnd, $hPrev, $Style, $iCtrl_SETIMAGE, $iCtrl_GETIMAGE, $iCtrl_BITMAP

    [/autoit] [autoit][/autoit] [autoit]

    ; determine control class and adjust constants accordingly
    Switch _WinAPI_GetClassName($CtrlId)
    Case "Button" ; button,checkbox,radiobutton,groupbox
    $iCtrl_SETIMAGE = $BM_SETIMAGE
    $iCtrl_GETIMAGE = $BM_GETIMAGE
    $iCtrl_BITMAP = $BS_BITMAP
    Case "Static" ; picture,icon,label
    $iCtrl_SETIMAGE = $STM_SETIMAGE
    $iCtrl_GETIMAGE = $STM_GETIMAGE
    $iCtrl_BITMAP = $SS_BITMAP
    Case Else
    Return SetError(1, 0, 0)
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICtrlGetHandle($CtrlId)
    If $hWnd = 0 Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; set SS_BITMAP/BS_BITMAP style to the control
    $Style = _WinAPI_GetWindowLong($hWnd, $GWL_STYLE)
    If @error Then Return SetError(3, 0, 0)
    _WinAPI_SetWindowLong($hWnd, $GWL_STYLE, BitOR($Style, $iCtrl_BITMAP))
    If @error Then Return SetError(4, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; set image to the control
    $hPrev = _SendMessage($hWnd, $iCtrl_SETIMAGE, $IMAGE_BITMAP, $HBITMAP)
    If @error Then Return SetError(5, 0, 0)
    If $hPrev Then _WinAPI_DeleteObject($hPrev)

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==>_SetBitmapToCtrl
    ; =========================== EINSTELLUNGEN ==============================
    Func _Einstellungen()
    $vGUIColor = 0x161616

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ GUISetState(@SW_HIDE, $hGui)
    _SM_SetVisualStyle(1)
    $settinggui = GUICreate("Settings", 555, 226, -1, -1, -1, BitOR(0x00000080, 0x00000010), $hGui)
    _SM_SetVisualStyle(0)
    GUISetBkColor($vGUIColor, $settinggui)
    $cancel = GUICtrlCreateButton("Exit", 303, 200, 247, 20)
    $save = GUICtrlCreateButton("Save", 10, 200, 247, 20)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $settings = GUICtrlCreateGroup("Einstellungen", 8, 8, 537, 185)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $label123 = GUICtrlCreateLabel("Immer einblenden ?", 16, 32, 94, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $modus1 = GUICtrlCreateRadio("Aktivieren", 16, 56, 97, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $modus2 = GUICtrlCreateRadio("Deaktivieren", 16, 80, 97, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Icon1 = GUICtrlCreateIcon("", -0, 32, 104, 32, 32)
    $Label1 = GUICtrlCreateLabel("Ausrichtung des Docks", 16, 112, 114, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    _SM_SetVisualStyle(1)
    Global $Combo1 = GUICtrlCreateCombo(IniRead($INI, "Ausrichtung", "Wert", ""), 16, 144, 129, 25)
    If $ausrichtung = "Rechts" Then
    GUICtrlSetData($Combo1, "Links")
    EndIf
    If $ausrichtung = "Links" Then
    GUICtrlSetData($Combo1, "Rechts")
    EndIf
    ;~ GUICtrlSetData(-1, "Links|Rechts")
    $Label2 = GUICtrlCreateLabel("Unsichtbarkeit", 184, 27, 75, 20)
    GUICtrlSetColor(-1, 0xFFFFFF)

    [/autoit] [autoit][/autoit] [autoit]

    Global $Slider1 = GUICtrlCreateSlider(176, 56, 100, 21, $TBS_NOTICKS) ; Unsichtbarkeit
    GUICtrlSetLimit($Slider1, 255, 75)
    GUICtrlSetBkColor($Slider1, $vGUIColor)
    GUICtrlSetData($Slider1, IniRead($INI, "Slider", "Wert", ""))

    [/autoit] [autoit][/autoit] [autoit]

    Global $sliderabstand = GUICtrlCreateSlider(308, 56, 100, 21, $TBS_NOTICKS) ; Abstand
    GUICtrlSetBkColor($sliderabstand, $vGUIColor)
    GUICtrlSetData($sliderabstand, IniRead($INI, "Abstand", "Wert", ""))

    [/autoit] [autoit][/autoit] [autoit]

    Global $sliderzent = GUICtrlCreateSlider(176, 120, 100, 21, $TBS_NOTICKS) ; Zentrierung
    GUICtrlSetBkColor($sliderzent, $vGUIColor)
    GUICtrlSetLimit($sliderzent, @DesktopHeight)
    GUICtrlSetData($sliderzent, IniRead($INI, "Zentrierung", "Wert", ""))

    [/autoit] [autoit][/autoit] [autoit]

    _SM_SetVisualStyle(0)
    $Label3 = GUICtrlCreateLabel("Abstand des Bildschirms", 308, 24, 118, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("Zentrierung des Bildschirms", 184, 88, 133, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Group1 = GUICtrlCreateGroup("Deine Postleitzahl", 320, 96, 209, 81)
    GUICtrlSetColor(-1, 0xFFFFFF)
    Global $plz1 = GUICtrlCreateInput("", 328, 128, 97, 21)
    GUICtrlSetData($plz1, IniRead($INI, "PLZ", "Wert", ""))
    $Absenden = GUICtrlCreateButton("Absenden", 440, 128, 75, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    If $setting1 = "yes" Then
    GUICtrlSetState($modus1, 1)
    ;~ GUICtrlSetState($modus1, $GUI_DISABLE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $setting2 = "yes" Then
    GUICtrlSetState($modus2, 1)
    ;~ GUICtrlSetState($modus2, $GUI_DISABLE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $settinggui)
    AdlibRegister("MoveWindow", 20)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg($settinggui)
    Case -3
    ExitLoop
    Case $cancel
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $Absenden
    IniWrite($INI, "PLZ", "Wert", GUICtrlRead($plz1))
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($Anzeige[0]))

    [/autoit] [autoit][/autoit] [autoit]

    $neuePLZ = GUICtrlRead($plz1)
    Global $Pcode[1][2] = [[$neuePLZ, ""]]
    Update()
    Case $modus1
    BitAND(GUICtrlRead($modus1), $GUI_CHECKED) ;= $GUI_CHECKED
    Case $modus2
    BitAND(GUICtrlRead($modus2), $GUI_CHECKED) ;= $GUI_CHECKED

    [/autoit] [autoit][/autoit] [autoit]

    Case $save
    IniWrite($INI, "Ausrichtung", "Wert", GUICtrlRead($Combo1))
    IniWrite($INI, "Slider", "Wert", GUICtrlRead($Slider1))

    [/autoit] [autoit][/autoit] [autoit]

    IniWrite($INI, "Abstand", "Wert", GUICtrlRead($sliderabstand))
    IniWrite($INI, "Zentrierung", "Wert", GUICtrlRead($sliderzent))
    IniWrite($INI, "PLZ", "Wert", GUICtrlRead($plz1))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($modus1) = 1 Then
    IniWrite($INI, "Setting 1", "run", "yes")
    $setting1 = "yes"
    Else
    IniWrite($INI, "Setting 1", "run", "no")
    $setting1 = "no"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($modus2) = 1 Then
    IniWrite($INI, "Setting 2", "run", "yes")
    $setting2 = "yes"
    Else
    IniWrite($INI, "Setting 2", "run", "no")
    $setting2 = "no"
    EndIf
    If $setting1 = "yes" Then
    WinSetOnTop("Desktop Wetter", "", 1)
    EndIf
    If $setting2 = "yes" Then
    WinSetOnTop("Desktop Wetter", "", 0)
    EndIf
    ExitLoop
    ;Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    GUIDelete($settinggui)
    AdlibUnRegister("MoveWindow")
    Sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_ENABLE, $hGui)
    GUISetState(@SW_SHOW, $hGui)

    [/autoit] [autoit][/autoit] [autoit]

    _SM_SetVisualStyle(1)
    EndFunc ;==>_Einstellungen
    Func MoveWindow()
    $read1 = GUICtrlRead($sliderzent)
    $read2 = GUICtrlRead($sliderabstand)
    Switch GUICtrlRead($Combo1)
    Case "Rechts"
    WinMove("Desktop Wetter", "", @DesktopWidth - 160 - $read2, $read1)
    Case "Links"
    WinMove("Desktop Wetter", "", $read2, $read1)
    EndSwitch
    EndFunc ;==>MoveWindow
    Func _SM_SetVisualStyle($b_Enable);turn on or of visual styles, able to color groups, checkboxes
    Return DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $b_Enable * 7) ; 7 = Enable, 0 = Disable
    EndFunc ;==>_SM_SetVisualStyle
    Func _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iCode, $tNMHDR
    $nNotifyCode = BitShift($iwParam, 16)
    $nID = BitAND($iwParam, 0x0000FFFF)
    $Pos = GUICtrlRead($nID)
    If $nID = $Slider1 Then
    $Trans = GUICtrlRead($Slider1)
    WinSetTrans($hGui, "", $Trans)
    EndIf
    GUIRegisterMsg($WM_NOTIFY, '_WM_NOTIFY')
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY
    ; ============ TRAY ================
    Func _Rightclick()
    TrayItemDelete($hTrayBlank3)
    TrayItemDelete($hTrayBlank2)
    TrayItemDelete($hTrayAbout)
    TrayItemDelete($hTrayExit)
    TrayItemDelete($hTrayAnzeigen)
    TrayItemDelete($hTrayEinstellungen)

    [/autoit] [autoit][/autoit] [autoit]

    $hTrayEinstellungen = TrayCreateItem("Einstellungen")
    TrayItemSetOnEvent($hTrayEinstellungen, "_Einstellungen")
    $hTrayAnzeigen = TrayCreateItem("Anzeigen")
    TrayItemSetOnEvent($hTrayAnzeigen, "_Doubleclick")
    $hTrayBlank3 = TrayCreateItem("")
    $hTrayAbout = TrayCreateItem("About")
    TrayItemSetOnEvent($hTrayAbout, "_About")
    $hTrayBlank2 = TrayCreateItem("")
    $hTrayExit = TrayCreateItem("Exit")
    TrayItemSetOnEvent($hTrayExit, "_Exit")
    EndFunc ;==>_Rightclick
    Func _Doubleclick()
    If BitAND(WinGetState($hGui), 2) Then
    GUISetState(@SW_HIDE, $hGui)
    Else
    GUISetState(@SW_SHOW, $hGui)
    WinActivate($hGui)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Doubleclick
    ; ================================ ABOUT FENSTER ===================================
    Func _About()
    $AAAbout = FileOpen("about.owb", 0)
    $aabout = FileRead($AAAbout)
    FileClose($AAAbout)
    MsgBox(64, "Über OpenWorldBrowser", $aabout)
    EndFunc ;==>_About
    Func _SM_GUICtrlCreateLabel($L_Text, $L_X, $L_Y, $L_Width = Default, $L_Height = 17, $L_Style = -1, $L_ExStyle = -1, $L_Color = 0xFFFFFF, $L_BkColor = Default)
    Local $L_HWnd = GUICtrlCreateLabel($L_Text, $L_X, $L_Y, $L_Width, $L_Height, $L_Style, $L_ExStyle)
    If $L_Color <> Default And $L_Color <> -1 Then GUICtrlSetColor($L_HWnd, $L_Color)
    If $L_BkColor <> Default And $L_BkColor <> -1 Then
    GUICtrlSetBkColor($L_HWnd, $L_BkColor)
    Else
    GUICtrlSetBkColor($L_HWnd, -2) ;$GUI_BKCOLOR_TRANSPARENT
    EndIf
    Return $L_HWnd
    EndFunc ;==>_SM_GUICtrlCreateLabel

    [/autoit] [autoit][/autoit] [autoit]

    Func LoadImageFrom_BinaryData($BinaryData, $GDIPlus_ShutDown = True)
    ; $GDIP_IMAGETYPE_BITMAP - Bitmap types: BMP, PNG, GIF, JPEG, TIFF, ICO, EXIF [Return HBITMAP Handle AND imageobject[Bitmap Handle]]
    ;$GDIP_IMAGETYPE_METAFILE - Metafile types: EMF, WMF [Return HENHMETAFILE Handle (AND\OR) imageobject]
    ;$GDIP_IMAGETYPE_UNKNOWN [Return new object]
    Local $tSize = StringLen($BinaryData) + 1
    Local $DATA = DllStructCreate("byte[" & $tSize & "]")
    DllStructSetData($DATA, 1, $BinaryData)
    Local $uFlags = 0x0002, $dwBytes = DllStructGetSize($DATA)
    Local $hMemory = DllCall("Kernel32.dll", "hwnd", "GlobalAlloc", "long", $uFlags, "long", $dwBytes)
    If @error Then
    Return -1
    Else
    $hMemory = $hMemory[0]
    If $hMemory = 0 Then Return -1
    EndIf
    Local $hLock = DllCall("Kernel32.dll", "ptr", "GlobalLock", "hwnd", $hMemory)
    If @error Then
    Return -2
    Else
    $hLock = $hLock[0]
    If $hLock = 0 Then Return -2
    EndIf
    Local $Destination = $hLock, $Source = DllStructGetPtr($DATA), $Length = $dwBytes
    DllCall("Kernel32.dll", "none", "RtlMoveMemory", "ptr", $Destination, "ptr", $Source, "long", $Length)
    If @error Then
    Return -3
    EndIf
    Local $fDeleteOnRelease = True, $Status, $ppstm, $Error
    Local $Error = DllCall("Ole32.dll", "int", "CreateStreamOnHGlobal", "ptr", $hLock, "int", $fDeleteOnRelease, "ptr*", 0)
    If @error Then
    Return -4
    Else
    If Not ($Error[0] = 0) Then Return -4
    $ppstm = $Error[3]
    EndIf
    Local $gdiplusOpen = DllOpen("gdiplus.dll")
    Local $ImageType = 0, $ImageWidth = 0, $ImageHeight = 0, $struct_GdiplusStartupInput, $Input, $LPInput, $VOID _
    , $LPVOID_token, $Status, $HBITMAP, $HENHMETAFILE, $GdiPlus_Dll_Hwnd, $GdiPlus_Token
    $struct_GdiplusStartupInput = _
    "int GdiplusVersion;" & _
    "int DebugEventCallback;" & _
    "int SuppressBackgroundThread;" & _
    "int SuppressExternalCodecs;"
    $Input = DllStructCreate($struct_GdiplusStartupInput)
    DllStructSetData($Input, "GdiplusVersion", 1)
    DllStructSetData($Input, "DebugEventCallback", 0)
    DllStructSetData($Input, "SuppressBackgroundThread", 0)
    DllStructSetData($Input, "SuppressExternalCodecs", 0)
    $LPInput = DllStructGetPtr($Input)
    $VOID = DllStructCreate("int")
    $LPVOID_token = DllStructGetPtr($VOID)
    $Status = DllCall($gdiplusOpen, "int", "GdiplusStartup", "ptr", $LPVOID_token, "ptr", $LPInput, "ptr", 0)
    If @error Then
    Return -5
    Else
    If Not ($Status[0] = 0) Then Return -5
    $LPVOID_token = $Status[1]
    EndIf
    Local $stream = $ppstm, $image = 0
    $Status = DllCall($gdiplusOpen, "int", "GdipLoadImageFromStream", "ptr", $stream, "int*", $image)
    If @error Then
    Return -6
    Else
    If Not ($Status[0] = 0) Then Return -6
    $image = $Status[2]
    EndIf
    $Status = DllCall($gdiplusOpen, "int", "GdipGetImageWidth", "hwnd", $image, "int*", 0)
    If Not @error Then
    If $Status[0] = 0 Then $ImageWidth = $Status[2]
    EndIf
    $Status = DllCall($gdiplusOpen, "int", "GdipGetImageHeight", "hwnd", $image, "int*", 0)
    If Not @error Then
    If $Status[0] = 0 Then $ImageHeight = $Status[2]
    EndIf
    $Status = DllCall($gdiplusOpen, "int", "GdipGetImageType", "hwnd", $image, "int*", 0)
    If Not @error Then
    Local $CaseMsg = $Status[2]
    Select
    Case $CaseMsg = 0
    $ImageType = "ImageTypeUnknown"
    Case $CaseMsg = 1
    $ImageType = "ImageTypeBitmap"
    $Status = DllCall($gdiplusOpen, "int", "GdipCreateHBITMAPFromBitmap", "hwnd", $image, "int*", 0, "int", 0)
    If Not @error Then
    if ($Status[0] = 0) Then $HBITMAP = $Status[2]
    EndIf
    Case $CaseMsg = 2
    $ImageType = "ImageTypeMetafile"
    Local $metafile = $image
    $Status = DllCall($gdiplusOpen, "int", "GdipGetHemfFromMetafile", "hwnd", $metafile, "int*", 0)
    If Not @error Then
    if ($Status[0] = 0) Then $HENHMETAFILE = $Status[2]
    EndIf
    EndSelect
    EndIf
    If $GDIPlus_ShutDown = True Then
    DllCall($gdiplusOpen, "int", "GdiplusShutdown", "ptr", $LPVOID_token)
    DllClose($gdiplusOpen)
    $GdiPlus_Dll_Hwnd = 0
    $GdiPlus_Token = 0
    Else
    $GdiPlus_Dll_Hwnd = $gdiplusOpen
    $GdiPlus_Token = $LPVOID_token
    EndIf
    Dim $ImageArray[2][8]
    $ImageArray[0][0] = "imageobject"
    $ImageArray[0][1] = "HBITMAP"
    $ImageArray[0][2] = "HENHMETAFILE"
    $ImageArray[0][3] = "ImageType"
    $ImageArray[0][4] = "ImageWidth"
    $ImageArray[0][5] = "ImageHeight"
    $ImageArray[0][6] = "GdiPlus Dll Hwnd "
    $ImageArray[0][7] = "GdiPlus Token"
    $ImageArray[1][0] = $image
    $ImageArray[1][1] = $HBITMAP
    $ImageArray[1][2] = $HENHMETAFILE
    $ImageArray[1][3] = $ImageType
    $ImageArray[1][4] = $ImageWidth
    $ImageArray[1][5] = $ImageHeight
    $ImageArray[1][6] = $GdiPlus_Dll_Hwnd
    $ImageArray[1][7] = $GdiPlus_Token
    Return $ImageArray
    EndFunc ;==>LoadImageFrom_BinaryData
    Func STATIC_SETBITMAP($hWnd, $HandleImage)
    Local $GWL_STYLE = (-16), $SS_BITMAP = 0x0000000E, $SS_ICON = 0x00000003, $STM_SETIMAGE = 0x0172
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    If Not BitAND(_WinAPI_GetWindowLong($hWnd, $GWL_STYLE), $SS_BITMAP) = $SS_BITMAP Then
    _WinAPI_SetWindowLong($hWnd, $GWL_STYLE, _WinAPI_GetWindowLong($hWnd, $GWL_STYLE) + $SS_BITMAP)
    ElseIf BitAND(_WinAPI_GetWindowLong($hWnd, $GWL_STYLE), $SS_ICON) = $SS_ICON Then
    _WinAPI_SetWindowLong($hWnd, $GWL_STYLE, _WinAPI_GetWindowLong($hWnd, $GWL_STYLE) - $SS_ICON)
    EndIf
    Return _SendMessage($hWnd, $STM_SETIMAGE, 0, $HandleImage)
    EndFunc ;==>STATIC_SETBITMAP
    Func _World()
    $stre = GUICtrlRead($street)
    $plz = GUICtrlRead($zip)
    $stadt = GUICtrlRead($city)
    $aland = GUICtrlRead($land)
    $url0 = "http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&address=" & $adr
    $url1 = "&street=" & $stre
    $url2 = "&zip=" & $plz
    $url3 = "&state=" & $stadt
    $url4 = "&country=" & $aland
    $url = $url0 & $url1 & $url2 & $url3 & $url4
    $oData = InetRead($url)
    $sData = $nBytesRead & @CRLF & @CRLF & BinaryToString($oData)
    $xmllon = _StringBetween($sData, "<Longitude>", "</Longitude>")
    If IsArray($xmllon) Then
    $xmllon = $xmllon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!1")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $xmllat = _StringBetween($sData, "<Latitude>", "</Latitude>")
    If IsArray($xmllat) Then
    $xmllat = $xmllat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!2")
    Exit
    EndIf
    ConsoleWrite("XML " & $xmllon & " " & $xmllat & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen($sFileName, 0)
    $sText = FileRead($hFile)
    FileClose($hFile)
    $Lon = _StringBetween($sText, "var lon =", ";")
    If IsArray($Lon) Then
    $Lon = $Lon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!3")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Lat = _StringBetween($sText, "var lat =", ";")
    If IsArray($Lat) Then
    $Lat = $Lat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!4")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Zoom = _StringBetween($sText, "var zoom = ", ";")
    If IsArray($Zoom) Then
    $Zoom = $Zoom[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!3")
    Exit
    EndIf
    If Not $aland = 0 Then
    $sZoom = 5
    Else
    $sZoom = 7
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If Not $stadt = 0 Then
    $sZoom = 10
    Else
    $sZoom = 7
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sText = StringReplace($sText, $Zoom, $sZoom)
    $sText = StringReplace($sText, $Lon, $xmllon)
    $sText = StringReplace($sText, $Lat, $xmllat)
    ConsoleWrite("HTML " & $Lon & " " & $Lat & @CRLF)
    $hFile = FileOpen($sFileName, 2)
    FileWrite($hFile, $sText)
    FileClose($hFile)
    _IENavigate($IE, @ScriptDir & "/start.html")
    EndFunc ;==>_World
    Func _Sea()
    $stre = GUICtrlRead($street)
    $plz = GUICtrlRead($zip)
    $stadt = GUICtrlRead($city)
    $aland = GUICtrlRead($land)
    $url0 = "http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&address=" & $adr
    $url1 = "&street=" & $stre
    $url2 = "&zip=" & $plz
    $url3 = "&state=" & $stadt
    $url4 = "&country=" & $aland
    $url = $url0 & $url1 & $url2 & $url3 & $url4
    $oData = InetRead($url)
    $sData = $nBytesRead & @CRLF & @CRLF & BinaryToString($oData)
    $xmllon = _StringBetween($sData, "<Longitude>", "</Longitude>")
    If IsArray($xmllon) Then
    $xmllon = $xmllon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!1")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $xmllat = _StringBetween($sData, "<Latitude>", "</Latitude>")
    If IsArray($xmllat) Then
    $xmllat = $xmllat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!2")
    Exit
    EndIf
    ConsoleWrite("XML " & $xmllon & " " & $xmllat & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen($1FileName, 0)
    $sText = FileRead($hFile)
    FileClose($hFile)
    $Lon = _StringBetween($sText, "var lon =", ";")
    If IsArray($Lon) Then
    $Lon = $Lon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!3")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Lat = _StringBetween($sText, "var lat =", ";")
    If IsArray($Lat) Then
    $Lat = $Lat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!4")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Zoom = _StringBetween($sText, "var zoom = ", ";")
    If IsArray($Zoom) Then
    $Zoom = $Zoom[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!3")
    Exit
    EndIf
    If Not $aland = 0 Then
    $sZoom = 5
    Else
    $sZoom = 7
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If Not $stadt = 0 Then
    $sZoom = 10
    Else
    $sZoom = 7
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sText = StringReplace($sText, $Zoom, $sZoom)
    $sText = StringReplace($sText, $Lon, $xmllon)
    $sText = StringReplace($sText, $Lat, $xmllat)
    ConsoleWrite("HTML " & $Lon & " " & $Lat & @CRLF)
    $hFile = FileOpen($1FileName, 2)
    FileWrite($hFile, $sText)
    FileClose($hFile)
    _IENavigate($IE, @ScriptDir & "/seastart.html")
    EndFunc ;==>_Sea

    [/autoit] [autoit][/autoit] [autoit]

    Func _Wohnort()
    $Wohnort = InputBox("Ihr Wohnort", "Da Sie das Programm zum ersten mal starten, sind Sie aufgefordert Ihren Wohnort zu schreiben." & @CRLF & @CRLF & "So wird das Programm ihr Persöhnliches Wetter herraus finden und ihren Ort anzeigen!" & @CRLF & @CRLF & "Viel Spaß " & @CRLF & "© Alexander F. (Wetter) & Simon K. (Open World)", "Ihren Wohnort", " ", "360", "260", "-1", "-1")
    $urlort = "http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&city=" & $Wohnort
    ClipPut($urlort)
    $oData = InetRead($urlort)
    $sData = $nBytesRead & @CRLF & @CRLF & BinaryToString($oData)
    $xmllon = _StringBetween($sData, "<Longitude>", "</Longitude>")
    If IsArray($xmllon) Then
    $xmllon = $xmllon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $xmllat = _StringBetween($sData, "<Latitude>", "</Latitude>")
    If IsArray($xmllat) Then
    $xmllat = $xmllat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    ConsoleWrite("XML " & $xmllon & " " & $xmllat & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $hFile = FileOpen($sFileName, 0)
    $sText = FileRead($hFile)
    FileClose($hFile)
    $Lon = _StringBetween($sText, "var lon =", ";")
    If IsArray($Lon) Then
    $Lon = $Lon[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Lat = _StringBetween($sText, "var lat =", ";")
    If IsArray($Lat) Then
    $Lat = $Lat[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    $Zoom = _StringBetween($sText, "var zoom = ", ";")
    If IsArray($Zoom) Then
    $Zoom = $Zoom[0]
    Else
    MsgBox(0, "Fehler", "Es wurde kein Längen oder Breitegrad gefunden! Das Programm wird nun Geschlossen!")
    Exit
    EndIf
    $sZoom = 10
    $sText = StringReplace($sText, $Zoom, $sZoom)
    $sText = StringReplace($sText, $Lon, $xmllon)
    $sText = StringReplace($sText, $Lat, $xmllat)
    ConsoleWrite("HTML " & $Lon & " " & $Lat & @CRLF)
    $hFile = FileOpen($sFileName, 2)
    FileWrite($hFile, $sText)
    FileClose($hFile)
    EndFunc ;==>_Wohnort

    [/autoit]


    Auch in diesem Board kann man Dateianhänge machen, PasteBin ist unnötig.

    Wenn du schon mit copy & Paste programmierst, solltest du auch die Geduld zum Austesten haben. Ebenso gehört es zum Guten Stil Funktionen, die man aus anderen Skripten (Tuttis) ünernommen hat im Quellcode als solche zu kennzeichnen,

    mfg (Auto)Bert

  • Hallo ProblemUser,

    bei diesem Aufruf kommt ein Fehler: http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&city=Würzburg evtl. Spezialfall, aber OWB steigt auch aus wenn ich meine Heimatstadt ohne PLZ eingebe. Werde dein neues Skrupt jetzt mit Berlin testen,

    Edit: ja, jetzt verstehe ich dein Problem, das Programm wird zwar nicht beendet aber deine Gui verschwindet. Habe einen (schlechten) Workaround gefunden:

    Spoiler anzeigen
    [autoit]

    While 1

    [/autoit] [autoit][/autoit] [autoit]

    $msg = GUIGetMsg()
    ConsoleWrite($msg & @CRLF)
    if $msg = 0 Then ContinueLoop
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $picexit, $mExit ; ,$exitContext
    GUISetState(@SW_HIDE, $hGui)
    Case $mSettings, $picsettings
    _Einstellungen()
    Case $picabout, $About
    _About()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    $map = 100
    _IENavigate($IE, @ScriptDir & "/start.html")
    Case $Button3
    $map = 10
    _IENavigate($IE, @ScriptDir & "/seastart.html")
    Case $search
    If $map = 10 Then
    $func = _Sea()
    Else
    $func = _World()
    EndIf
    Case $Button4
    _About()
    Case $OWBFunks
    If $Wetter = 1 Then
    GUISetState(@SW_HIDE, $hGui)
    Else
    _Weather()
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    du solltest dir "GUIGetMsg für Fortgeschrittene und mehrere Fenster" (Gui Referenz | MessageLoop Modus) anschauen und am Schluss nur noch eine Schleife für alle Fenster benutzen,

    mfg (Auto)Bert
    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (11. Juni 2010 um 17:39)

  • Gut ich hab mich jetzt entschlossen nur noch 1/10 des Wetter Scriptes zu übernehmen!
    Das Problem jetzt ist aber, das ich das Label nicht ändern kann!

    [autoit]

    #include<String.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Local $nBytesRead = @extended
    #Region ### START Koda GUI section ### Form=
    $WetterForm = GUICreate("Wetter", 145, 223, 188, 124)
    $Label1 = GUICtrlCreateLabel("", 16, 16, 112, 17)
    $Label2 = GUICtrlCreateLabel("", 16, 16, 112, 17)
    $Label3 = GUICtrlCreateLabel("", 16, 16, 112, 17)
    $Group1 = GUICtrlCreateGroup("Wetter", 8, 0, 129, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Pic1 = GUICtrlCreatePic("", 8, 88, 128, 128, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    $wURL = "http://www.google.com/ig/api?weather=Berlin&hl=de"
    $oData = InetRead($wURL)
    $sData = $nBytesRead & @CRLF & @CRLF & BinaryToString($oData)
    $ctData = _StringBetween($sData, '<condition data="', '"/>')
    $temp_c = _StringBetween($sData, '<temp_c data="', '"/>')
    $vluft = _StringBetween($sData, '<humidity data="', '"/>')
    If IsArray($ctData) Then
    $ctData = $ctData[0]
    Else
    MsgBox(0, "Fehler", "Das Programm konnte kein Wetter feststellen! Prüfen sie ihre Internet Verbuíndung!")
    EndIf
    $ctDat = "Aktuell:" & $ctData
    GUICtrlSetData($Label1, $ctDat)
    If IsArray($temp_c) Then
    $temp_c = $temp_c[0]
    Else
    MsgBox(0, "Fehler", "Das Programm konnte kein Wetter feststellen! Prüfen sie ihre Internet Verbuíndung!")
    EndIf
    $temp = "Temperatur:" & $temp_c
    GUICtrlSetData($Label2, $temp)
    If IsArray($vluft) Then
    $vluft = $vluft[0]
    Else
    MsgBox(0, "Fehler", "Das Programm konnte kein Wetter feststellen! Prüfen sie ihre Internet Verbuíndung!")
    EndIf
    $luft = "Luft-" & $vluft
    GUICtrlSetData($Label3, $luft)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]