Nečinnost uživatele   zodpovězená otázka

VB.NET, Algoritmy

Dobrý den,

neřešil někdo z Vás, jak hlídat činnost/nečinnost uživatele? Myslím z hlediska celého systému. Předpokládám, že windows v sobě má nějaký mechanismus, který to hlídá. Dá se využít.

O co mi jde. Chci měřit využití počítače, lépe řečeno kolik času u něj uživatel stráví. Prostě, aby moje aplikace dostala, třeba po minutě, zprávu o nečinnosti, a naopak okamžitě, když uživatel stiskne klávesu, nebo pohne myší.

Za všechny rady předem děkuji.

J. Havel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Napsat něco takového by bylo poměrně složité, musely by se použít globální keyboard a mouse hooky (Windows API). Kromě toho stejně nezjistíte jak dlouho trávil uživatel u počítače - když bude většinu času koukat na obrazovku a občas zalistuje kolečkem myši nebo když bude hrát hru která se dá kompletně ovládat gamepadem tak to budou dlouhé časové prodlevy kdy nebudete vědět, zda-li u počítače sedí nebo ne. Takovéto hlídací programy jsou holý nesmysl. Pokud chcete omezit uživateli dobu strávenou u počítače tak k tomu se používají jiné postupy, například umožnit uživatelům přihlašování pouze v určitém časovém intervalu (např. od 16:00 do 20:00) ale k tomu je nutná doména. Pokud se nepletu tak ve Windows Vista je také cosi jako rodičovský zámek, který funguje na podobném principu pro spouštění her.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za reakci. Nejde o nějaké omezování, ani netvrdím, že to k něčemu bude. Jde spíš o cvičení. Prostě chci si zkusit vytvořit systémovou službu. Chtěl jsem, aby to fungovalo tak, že to bude evidovat přibližně časy, po které uživatel hýbe myší nebo ťuká do klávesnice.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Napadá mě udělat aplikaci bez okna (hide), která bude zaznamenávat čas činnosti (nečinnosti) ve funkci spořiče obrazovky, tj. po přejmenování EXE na SCR

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to jen taková úvaha bez záruky, ale windows nejspíš budou mít nějáké počítadlo kvůli spořiči obrazovky. Možná by šlo požadované údaje nějákým způsobem vytáhnout odtamtud.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já mám právě stejnou představu. Teď jde o to, jak to využít. Určitě někde na internetu bude nějaká ukázka, ale bohužel jsem nic nenašel.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste vygooglit nějáké info o API funkci SystemParametersInfo někde tam by to mohlo být:)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

zkusím se podívat. Díky za ochotu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Existuje API funkce GetLastInputInfo, kterou se dá zjistit, jak dlouho je počítač bez pohybu myši a používá se k určení, kdy se má spustit screensaver atd.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback