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