Hallo Liebes Forum
Ich habe nun vor ein DesktopWetter zu erstellen.
Das Design wollte ich später nochmal bearbeiten, erstmal soll es klappen , dass das Bild geändert wird, wenn sich der Text ändert.
Es kann dieser Text vorkommen.
Und Jeder Text soll ein anderes Bild sein.
Hier mein script
Ich weiß jetzt wo ich einstellen kann , dass sich die Bilder ändern.
Nur wenn ich das Bild ohne _GDI einbinde dann hat es immer ein doofen Rand , der mir nicht gefällt und bei einem Transparenten Gui einfach nicht passt.
Zeile 44 - 47 wenn man das aktiviert sieht man , dass es klappt.
Aber ab Zeile 91 wenn es Bewölkt ist , klappt es nicht.
Freue mich wieder auf jede Antwort
Edit1: bild hinzugefügt
Spoiler anzeigen
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <INet.au3>
#include <string.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
#Include <WinAPI.au3>
$Trans = 250
$Color = 0x545454
$vGUIColor = 0x161616
$INI = @ScriptDir & "\Data\Einstellungen.ini"
$setting1 = IniRead($INI, "Setting 1", "run", "")
$setting2 = IniRead($INI, "Setting 2", "run", "")
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
Global $hGui, $hImage, $hGraphic, $hImage1
[/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] = [[45478, "45478 Mülheim an der Ruhr"]]
; ====== GUI =======
$hGui = GUICreate("Desktop Wetter", 200, 300, 1, 1, $WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
$Menu = GUICtrlCreateContextMenu()
$mSettings = GUICtrlCreateMenuItem("Einstellungen...", $Menu)
$mExit = GUICtrlCreateMenuItem("Beenden...", $Menu)
GUICtrlCreateMenuItem("", $Menu)
$About = GUICtrlCreateMenuItem("Über Uns...", $Menu)
GUISetBkColor($Color, $hGui)
;~ _GDIPlus_StartUp()
;~ $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bewölkt mit sonne.png")
;~ $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
;~ GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
;~ 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)]
GUICtrlSetFont(-1, 10)
GUICtrlSetColor(-1, 0xFFFFFF)
guictrlsetbkColor(-1,$Color)
WinSetTrans($hGui, "", $Trans)
GUISetState(@SW_SHOW)
Update()
AdlibRegister("Update", 60000) ; Jede Minute
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $mExit
Exit
Case $mSettings
_Einstellungen()
EndSwitch
WEnd
Func Update()
For $i = 0 To 0
SetData($i)
Next
WinSetTitle("Desktop Wetter", "", "Desktop Wetter | " & @HOUR & ":" & @MIN)
EndFunc
Func SetData($index)
$aTmp = _getXML_Weather_data($Pcode[$index][0])
If IsArray($aTmp) Then
;~ GUICtrlSetData($Gruppe[$index], $Pcode[$index][1])
Switch $aTmp[1]
Case "Klar"
;~ MsgBox(0,"Info","Klar")
;Hier bild für Klar setzen
Case "Bewölkt"
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bewölkt mit sonne.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
EndSwitch
GUICtrlSetData($Anzeige[$index], $aTmp[1] & @CRLF & $aTmp[2] & @CRLF & $aTmp[3] & @CRLF & $aTmp[4] & @CRLF)
Else
;~ GUICtrlSetData($Gruppe[$index], $Sonst[0])
GUICtrlSetData($Anzeige[$index], $Sonst[1] & @CRLF & $Sonst[2] & @CRLF & $Sonst[3] & @CRLF & $Sonst[4] & @CRLF)
EndIf
EndFunc
Func _getXML_Weather_data($pcode)
$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
EndFunc ;==>_getXML_Weather_data
; =========================== BILDER ====================================
[/autoit] [autoit][/autoit] [autoit]; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
; Draw PNG image
Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 16, 160)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc
; =========================== EINSTELLUNGEN ==============================
Func _Einstellungen()
;~ $Title = "Dekstop Wetter" & " " & ""
Opt("GUIOnEventMode", 0)
;~ GUISetState(@SW_DISABLE, $hGui)
GUISetState(@SW_HIDE, $hGui)
_SM_SetVisualStyle(1)
$settinggui = GUICreate("Settings", 518, 190, -1, -1, -1, BitOR(0x00000080, 0x00000010), $hGui)
_SM_SetVisualStyle(0)
GUISetBkColor($vGUIColor, $settinggui)
$cancel = GUICtrlCreateButton("Exit", 263, 160, 247, 20, 0)
$save = GUICtrlCreateButton("Save", 10, 160, 247, 20, 0)
$settings = GUICtrlCreateGroup("Einstellungen", 8, 8, 497, 145)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$label123= GUICtrlCreateLabel("Einstellungen von diesem Programm ?", 16, 32, 222, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$modus1 = GUICtrlCreateRadio("Setting 1 ?", 16, 56, 97, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$modus2 = GUICtrlCreateRadio("Setting 2 ?", 16, 80, 97, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Icon1 = GUICtrlCreateIcon("", -1, 248, 104, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
$settingslaben2 = GUICtrlCreateLabel("Es werden noch viele weiter Funktionen folgen", 256, 64, 225, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlCreateGroup("", -99, -99, 1, 1)
If $setting1 = "yes" Then
GUICtrlSetState($modus1, 1)
;~ GUICtrlSetState($modus1, $GUI_DISABLE)
EndIf
If $setting2 = "yes" Then
GUICtrlSetState($modus2, 1)
;~ GUICtrlSetState($modus2, $GUI_DISABLE)
EndIf
GUISetState(@SW_SHOW, $settinggui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg($settinggui)
Case -3
ExitLoop
Case $cancel
ExitLoop
Case $modus1
BitAND(GUICtrlRead($modus1), $GUI_CHECKED) ;= $GUI_CHECKED
Case $modus2
BitAND(GUICtrlRead($modus2), $GUI_CHECKED) ;= $GUI_CHECKED
Case $save
[/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
If GUICtrlRead($modus2) = 1 Then
IniWrite($INI, "Setting 2", "run", "yes")
$setting2 = "yes"
Else
IniWrite($INI, "Setting 2", "run", "no")
$setting2 = "no"
EndIf
ExitLoop
;Exit
EndSwitch
Sleep(10)
WEnd
GUIDelete($settinggui)
Sleep(100)
GUISetState(@SW_ENABLE, $hGui)
GUISetState(@SW_SHOW, $hGui)
_SM_SetVisualStyle(1)
EndFunc ;==>_Einstellungen
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