Seite 2 von 3
Verfasst: 10.07.2007 13:20
von D@nte
0815 Lösung wäre wohl im Timerinterval den Fenstertitel zu aktualisieren (ist das überhaupt ne Fensteranwendung?!)
Ansonsten ggf hilft dir das weiter:
http://www.purearea.net/pb/CodeArchiv/W ... Taskbar.pb
Verfasst: 10.07.2007 13:44
von Kaeru Gaman
jetzt mal ins blaue geraten (hab noch nie was in den systray gepackt)
das SysTrayIcon ist doch einem Image zugeordnet...
wenn du jetzt die uhr auf dieses Image malst, und dann das selbe Image erneut zuordnest,
könnte es im SysTray aktualisiert werden und aktueller zustand angezeigt....
Verfasst: 10.07.2007 14:05
von D@nte
Ich glaube deins funktioniert nicht Kaeru
Klar die Idee ist an sich gut, aber der Systray bzw AddSysTrayIcon() akzeptiert nur .ico sprich man bräuchte erstmal ne riesen Routine um überhaupt den Timer im richtigen Format darzustellen (kA wie sich das in Rechenzeit auswirkt), aber das viel größere Problem ist im Systray gibt's nur 'Images' in der Größe 16x16 und das ist glaubig nicht grad augenfreundlich
Verfasst: 10.07.2007 14:30
von Kaeru Gaman
er sprach aber von systray...
nuja.. 16² ist schon recht winzig...
da wird digital nix, da passen nur vier zahlen hin, nicht mal der doppelpunkt (drittes von links)
als analog ginge das dann schon eher (zweites von rechts)
aber das mit dem aktualisieren müßte schon irgendwie gehen...
gibt doch schließlich ne menge tools, die im systray aktivität anzeigen...
Verfasst: 10.07.2007 14:33
von Kiffi
Kaeru Gaman hat geschrieben:nuja.. 16² ist schon recht winzig...
man kann ja mehrere Trayicons verwenden und muss dann nur noch darauf
achten, dass sie in der richtigen Reihenfolge erscheinen
Grüße ... Kiffi
Verfasst: 10.07.2007 15:06
von Helle
Ich hatte hier
http://www.purebasic.fr/german/viewtopi ... highlight= mal sowas in der Richtung getrieben.
Gruss
Helle
Verfasst: 10.07.2007 17:16
von DNA
Das Beispiel im Link macht ja nicht das was ich gefragt habe. Soll ja nicht einfach drüber liegen, sondern dazugefügt werden.
das sieht zwar recht interessant aus, aber leider nicht das was ich wollte. So wie ich das hier sehe, muss die Windowsuhr aus einem Controllelement bestehen und nicht aus einem Icon.
Ich kann zB. über das Handle und dem Befehl ShowWindow die Uhrzeit verstecken. Was mich halt vermuten lässt, dass es sich nicht um ein Icon handelt.
Code: Alles auswählen
#TASKBAR = "Shell_TrayWnd"
#ID_TRAY = $12F
#ID_CLOCK = $12F
Procedure.l Clock_Show_Hide(bShowHide.b)
Protected hWnd.l
hWnd = GetDlgItem_(FindWindow_(#TASKBAR, #Null), #ID_TRAY)
Debug hWnd
hWnd = GetDlgItem_(hWnd, #ID_CLOCK)
Debug hWnd
If hWnd = #Null
ProcedureReturn 0
EndIf
If bShowHide
ShowWindow_(hWnd, #SW_SHOW)
Else
ShowWindow_(hWnd, #SW_HIDE)
EndIf
UpdateWindow_(hWnd)
ProcedureReturn 1
EndProcedure
Clock_Show_Hide(#False)
Delay(3000)
Clock_Show_Hide(#True)
Verfasst: 10.07.2007 21:37
von Fluid Byte
Wie isn' hiermit:
Code: Alles auswählen
TrayWnd = FindWindow_("Shell_TrayWnd", 0)
TrayNofifyWnd = FindWindowEx_(TrayWnd,0,"TrayNotifyWnd",0)
GetWindowRect_(TrayNofifyWnd,wrc.RECT)
#OFFSETCY = 40
STX = wrc\left
STW = wrc\right - wrc\left
STH = wrc\bottom - wrc\top
MoveWindow_(TrayNofifyWnd,STX - #OFFSETCY,0,STW + #OFFSETCY,STH,1)
OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindow(1,STW,0,#OFFSETCY,STH,"",#WS_CHILD,TrayNofifyWnd)
CreateGadgetList(WindowID(1))
TextGadget(0,0,0,#OFFSETCY,STH,"00:00",#PB_Text_Border | #SS_CENTER | #SS_CENTERIMAGE)
SetGadgetColor(0,#PB_Gadget_BackColor,$808080)
SetGadgetColor(0,#PB_Gadget_FrontColor,#White)
SetTimer_(WindowID(0),0,1000,0)
Procedure WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Static Seconds, Minutes
Select uMsg
Case #WM_TIMER
Seconds + 1
If Seconds = 60 : Seconds = 0 : Minutes + 1 : EndIf
Time$ = RSet(Str(Minutes),2,"0") + ":" + RSet(Str(Seconds),2,"0")
SetGadgetText(0,Time$)
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
SetWindowCallback(@WindowCallback())
While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
MoveWindow_(TrayNofifyWnd,STX,0,STW,STH,1)
Verfasst: 11.07.2007 07:44
von DNA
Danke Fluid, das ist genau das richtige.

Verfasst: 11.07.2007 11:10
von Kaeru Gaman
@Fluid
magst du das etwas ausführlicher kommentieren,
und dann in der CT&T-ecke posten?
wenn das posting dann noch die suchbegriffe "systray windows control element" enthält, isses perfekt.
