Nutzung eines PCs anhand von Mausbewegung protokollieren

  • Hallo,

    ich würde gern einen PC "überwachen" um zu sehen ob dieser überhaupt genutzt wird. Der PC läuft rund um die Uhr, es ist immer ein und derselbe User angemeldet, ausserdem wurde er so eingeschränkt das man nur den Internetexplorer nutzen kann und mit diesem auch nur Seiten aus dem Netzwerk aufrufen kann. Aus diesen Gründen ist es schwierig bzw. nutzlos das starten von Programmen etc. zu überwachen, ich glaube die einzige Möglichkeit ist es zu protokollieren wann die Maus bewegt wird.

    Hätte jemand eine Idee wie man dies protokollieren kann?

    • Offizieller Beitrag

    Willst Du eine echte Protokollierung, also von wann bis wann genutzt, oder reicht eine Zeitangabe (z.B. 5 Stunden/Tag)?

    Bei ersterem müsstest Du definieren, wie groß die Auflösung sein soll, sprich: ob bereits das bloße anstupsen der Maus protokolliert werden soll oder ob erst dann ein Eintrag stattfindet, wenn die Maus eine zeitlang bewegt wird (z.B. min. 10 sek. oder so).
    Wenn die Zeitangabe reicht, dann wäre das ein relativ kurzes Script.

  • Hi,

    vlt. kannst du was damit anfangen.

    Spoiler anzeigen
    [autoit]


    Opt('TrayIconHide', 1)
    Opt('MustDeclareVars', 1)
    Global $MousePos = MouseGetPos(), $Check_MousePos[2]
    $Check_MousePos[0] = $MousePos[0]
    $Check_MousePos[1] = $MousePos[1]
    While 1
    $MousePos = MouseGetPos()
    Select
    Case $MousePos[0] <> $Check_MousePos[0]
    IniWrite(@DesktopDir & '\Protokoll.ini', 'Position', @MDAY & '.' & @MON & '.' & @YEAR & ' / ' & @HOUR & ':' & @MIN & ':' & @SEC & ':' & @MSEC & '_', ' X: ' & $MousePos[0] & ' Y: ' & $MousePos[1])
    $Check_MousePos[0] = $MousePos[0]
    Case $MousePos[1] <> $Check_MousePos[1]
    IniWrite(@DesktopDir & '\Protokoll.ini', 'Position', @MDAY & '.' & @MON & '.' & @YEAR & ' / ' & @HOUR & ':' & @MIN & ':' & @SEC & ':' & @MSEC & '_', ' X: ' & $MousePos[0] & ' Y: ' & $MousePos[1])
    $Check_MousePos[1] = $MousePos[1]
    EndSelect
    WEnd

    [/autoit]

    LG

    2 Mal editiert, zuletzt von Ealendil (1. Februar 2010 um 18:11)

  • Vielen Dank an alle für eure schnellen Antworten, muss alles mal in Ruhe anschauen...!


    Oscar

    Eine Zeitangabe reicht im Prinzip schon, eine genaue Protokollierung wäre zwar noch besser aber nicht unbedingt nötig.

  • Ich würd's ja per Bildschirmschoner probieren.

    Die Überwachung der Inaktivität übernimmt dann das OS selber, das Bildschirmschonerscript wird dann bei Inaktivität aufgerufen, protokolliert das und...äh...schont den Bildschirm. Bei Akitivität des Benutzers hast Du erneut Gelegenheit mitzuloggen und dann den Schoner zu beenden.

    Vorteil: Man erkennt auch längeres Lesen einer Seite als Aktivität

  • Und was ist wenn der Bildschirmschoner deaktiviert ist?

    Warum nicht einfach so in der Art:

    [autoit]

    #include <Timers.au3>
    While 1 * Sleep(100)
    ToolTip("Idle since: "&Floor(_Timer_GetIdleTime()/1000)&" sec.")
    If _Timer_GetIdleTime() > 10000 Then
    ToolTip("User is Idle")
    While _Timer_GetIdleTime() > 10000
    Sleep(100)
    WEnd
    ToolTip("User is Back")
    EndIf
    WEnd

    [/autoit]
  • Und was ist wenn der Bildschirmschoner deaktiviert ist?

    Der PC unterliegt doch ohnehinschon etlichen administrativen Einschränkungen für die User. Da einen Schoner fest einzustellen dürfte ja dann wohl auch noch gehen.