Seite 1 von 1

Eigene Uhr im Systray

Verfasst: 21.10.2006 22:59
von roherter

Code: Alles auswählen

;-(c) Robert Herter

;Rect Structure
Structure fg
  left.l
  top.l
  rigth.l
  bottom.l
EndStructure
Dim MyClock.fg(1)

;-Systray
hwnd=FindWindowEx_(FindWindow_("Shell_TrayWnd", ""), 0, "TrayNotifyWnd", "")

;-Child Window
GetWindowRect_(hwnd,@MyClock(0))
OpenWindow(1,(MyClock(0)\rigth-MyClock(0)\left-40),0,40,24,"",#PB_Window_BorderLess|#PB_Window_Invisible)
;-Font erstellen
FontID1=LoadFont(0,"Arial",9,#PB_Font_Bold) 

;-Gadget und Einstellungen für die Uhr
CreateGadgetList(WindowID(1))

  TextGadget(10,4,3,40,25,"")
  SetGadgetColor(10,#PB_Gadget_BackColor,RGB($25,$69,$DA))
  SetGadgetColor(10,#PB_Gadget_FrontColor,RGB($FF,$FF,$FF))
  SetGadgetFont(10,FontID1)
  SetWindowColor(1,RGB($25,$69,$DA))
  SetParent_(WindowID(1),hwnd);-Eltern fenster setzen
  ShowWindow_(WindowID(1),1);-Fenster anzeigen


;-Thread für die Uhr
Procedure mythread()
  Repeat
  If (ElapsedMilliseconds()-refreshtimer) > 1000 ; 1 Sekunde
    SetGadgetText(10, FormatDate("%hh:%ii", Date()) )
    refreshtimer=ElapsedMilliseconds()
  EndIf 
ForEver 
EndProcedure
;------
CreateThread(@mythread(),0);-Thread Starten


;-Hauptschleife
Repeat
 
  Event=WaitWindowEvent()  
  EventType=EventType()

Until EventType=#PB_EventType_RightClick

End
;---

Kann man noch viel dran erweitern.
Wenn die Taskleiste rechts oder links ist, dann funktioniert es im moment noch nicht!

Im moment nur für den Klassischen Skin.

Re: Eigene Uhr im Systray

Verfasst: 21.10.2006 23:03
von AND51
roherter hat geschrieben:Kann man noch viel dran erweitern wenn die taskleiste rechts oder links ist funktioniert es im moment noch nicht!
Stimmt, es muss noch viel getan werden, und momentan funktioniert es GAR NICHT :wink:

Du hast in zeile 30 einen Unterstrich vergessen, weil das ein API Befehl ist und kein Makro, keine Prozedur, Array oder LinkedList.

Habe den Fehler korrigiert und es geht wunderbar, aber wo ist der Sinn des Codes? Du klatschst einfach ein Fenster über die Zeitanzeige... :?

Verfasst: 21.10.2006 23:12
von MVXA
Kann man noch viel dran erweitern wenn die taskleiste rechts oder links ist funktioniert es im moment noch nicht!
Aua, sind Punkt und Komma denn so viel verlangt :cry: ?

Verfasst: 21.10.2006 23:23
von roherter
Falls du Showwindow() meinst, das funktioniert bei mir einwandfrei unter jaPBe für PB 4.0.

Aber ich habs mal oben angepasst.

@MVXA:Nicht immer nörgeln.
:o