ich habe jetzt das Funktionsupdate für Windows 10, Version 1803 bekommen und siehe ein kleine Programm von mir läuft nicht mehr korrekt.
Am Bildschirm soll ab und zu eine Zahl auftauchen und wieder verschwinden. Dieser Wert (Anzahl der Tage bis zu einem bestimmten Datum)
soll mit transparenten Hintergrund auftauchen was auch bis dato funktionierte. Jetzt allerdings wird der Hintergrund nur noch Schwarz angezeigt.
Ist zwar nicht schlimm sieht aber natürlich nicht so gut aus. Hier der Code
Code: Alles auswählen
EnableExplicit
ExamineDesktops()
Define lDate.i
Global gDCDesktop
Global gRect.RECT
Global gDeskX=DesktopWidth(0)
Global gDeskY=DesktopHeight(0)
Procedure Blink(vText.s, vFonthight, vFontwidht)
Protected pWndDesktop, pFont, pPixX, pPixY
pWndDesktop=FindWindowEx_(pWndDesktop, 0, "Progman", "Program Manager")
pWndDesktop=FindWindowEx_(pWndDesktop, 0, "SHELLDLL_DefView", 0)
pWndDesktop=FindWindowEx_(pWndDesktop, 0, "SysListView32", 0)
gDCDesktop = GetDC_(pWndDesktop)
SetTextColor_(gDCDesktop, #Red)
SetBkMode_ (gDCDesktop, #TRANSPARENT)
pFont = CreateFont_(vFonthight, vFontwidht, 0, 0,#FW_NORMAL,0,0,0,#ANSI_CHARSET,#OUT_DEFAULT_PRECIS,#CLIP_DEFAULT_PRECIS,#DEFAULT_QUALITY,#DEFAULT_PITCH|#FF_ROMAN,"Times New Roman")
SelectObject_(gDCDesktop, pFont)
pPixX=Random(gDeskX - Len(vText)*30)
pPixY=Random(gDeskY)
gRect\top = pPixY
gRect\left = pPixX
gRect\right = gRect\left + Len(vText) * 30
gRect\bottom = gRect\top + 200
DrawText_(gDCDesktop, vText, #PB_Any, gRect, #DT_SINGLELINE)
DeleteObject_(pFont)
EndProcedure
Procedure Main(vDate.i)
Protected pQuit.a, pEvent.i, pDummy.i, pValue.s = " TAGE"
Protected pRestTage.i = (vDate - Date()) / (24*60*60) + 1
If OpenWindow(0, 0, 0, 400, 300, "Vorruhestand", #PB_Window_Minimize|#PB_Window_NoActivate|#PB_Window_Invisible)
AddWindowTimer(0, 123, 10000)
Repeat
pEvent=WaitWindowEvent(1000)
Select pEvent
Case #PB_Event_Timer
If (EventTimer()=123)
pDummy!1
If (pDummy=1)
If (pRestTage=1): pValue = " TAG": EndIf
Blink("NUR NOCH " + Str(pRestTage) + pValue, 60, 20)
Else
InvalidateRect_(0, 0, 0)
EndIf
EndIf
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
InvalidateRect_(0, 0, 0)
ReleaseDC_ (0, gDCDesktop)
EndIf
EndProcedure
lDate = ParseDate("%dd.%mm.%yyyy", ProgramParameter())
If (lDate=>Date()): Main(lDate): EndIf
End