Ich wollte versuchen, ein Programm zu schreiben welches mir sagt wer, wann, wie lange am Rechner tätig war. Diesbezüglich habe ich ein Programm geschrieben welches mir sagen kann wann jemand am Computer war aber leider nicht wie lange. Irgenwie Funktioniert mein
WindowCallBack nicht welches die Daten beim Abmelden Speichern soll.
Warum ?
Code: Alles auswählen
; PCRun
;~~~~~~~
Enumeration ;Fenster
#Window_0
EndEnumeration
Enumeration ;Gadget
#SYSTRAY
#IMAGEVIEW
EndEnumeration
#TRUE = 1
#FALSE = 0
#BASEFILENAME.s = "PCRun"
#SEPERATOR.s = ";"
#DATAEXT.s = ".dat"
NewList DS.s()
Global ProgramArt.b
Procedure DataWrite(Value.s)
Protected Text.s, User.s
Buffer.s = Space(1024)
bufsize.l = 1024
GetUserName_(@Buffer, @bufsize)
User = PeekS(Buffer,bufsize)
Text = User + #SEPERATOR + FormatDate("%dd.%mm.%yyyy", Date()) + #SEPERATOR + FormatDate("%hh.%ii", Date()) + #SEPERATOR + Value
If OpenFile(0, #BASEFILENAME + #DATAEXT)
FileSeek(Lof())
WriteStringN(Text)
CloseFile(0)
EndIf
EndProcedure
Procedure WindowsCallback(WindowID, Message, wParam, lParam)
If (Message = #WM_QUERYENDSESSION): DataWrite("OFF"): EndIf
ProcedureReturn #True
EndProcedure
Procedure Open_Window_Base()
If OpenWindow(#Window_0, 0, 0, 0, 0, #PB_Window_SystemMenu , "Computerlaufzeit")
AddSysTrayIcon(#SYSTRAY, WindowID(), LoadImage(#IMAGEVIEW, "PBPCRun.ico"))
HideWindow(#Window_0, #True)
EndIf
EndProcedure
Open_Window_Base()
DataWrite("ON")
SetWindowCallback(@WindowsCallback())
Repeat
baseEvent = WaitWindowEvent()
Select baseEvent
Case #PB_Event_CloseWindow
baseQuit = #True
Case #PB_Event_SysTray
If (EventType() = #PB_EventType_LeftDoubleClick)
baseQuit = #True
EndIf
EndSelect
Until(baseQuit = #True)
End