nop77svk / wtwd Goto Github PK
View Code? Open in Web Editor NEWWork-Time Watch-Dog
License: Other
Work-Time Watch-Dog
License: Other
Event logs with a few days worth of data start to get "sluggish" when queried. Try multithreading the event log querying process, since there are atm 4 distinct queries anyway.
Currently, the SynTPEnhService is the only one logging workstation lock/unlock events. There are, however, systems where the service does not exist. Implement an extra CLI command to log lock/unlock events for running via Windows task scheduler.
Once the #4 issue is resolved, implement an (optional) automatic detection of SynTPEnhService events and (optional) automatic installation of Windows task scheduler jobs calling wtwd to post the custom lock/unlock events.
As a CLI option, calculate and display daily/weekly work time summaries.
Note: Sequences of On/Off events must be taken into consideration to prevent including, e.g., the wakeup->sleep (without unlocking->locking) sessions into the calculations, as these usually indicate accidental or purely technical/maintenance PC startups/shutdowns.
Currently, the event log is being queried for events at most 1 month old. Add a CLI option for specifying a custom period of events of interest with 1 month as the default.
C:\Users\...>wtwd init-lock-unlock
Unhandled exception. System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate)
at System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate)
at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
at System.Diagnostics.EventLog.SourceExists(String source)
at NoP77svk.wtwd.cli.InitLockUnlock.InitLockUnlockProgram.InitializeEventSource()
at NoP77svk.wtwd.cli.InitLockUnlock.InitLockUnlockProgram.Execute(InitLockUnlockConfig cli)
at NoP77svk.wtwd.cli.InitLockUnlock.InitLockUnlockProgram.Execute(InitLockUnlockCLI cli)
at NoP77svk.wtwd.cli.Program.<>c.<Main>b__0_3(InitLockUnlockCLI cli)
at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
at NoP77svk.wtwd.cli.Program.Main(String[] args)
Currently, the output is in human readable format with indentation et al.
Make the human-readable formatting optional, allowing for output in machine-readable (CSV/JSON/XML/...) format for possible further processing.
Command-line interface is needed.
..., since without workstation unlocking there's no work, right?
... in order to have the option to filter the list display for the current user
Upon wtwd startup, detect the OS and its version and validate it against the list of tested OS versions. If an unsupported OS, throw an error and finish. If an untested OS version, display a warning.
Current timestamp rounding is hardcoded to 1 minute. It'd be nice to have this customizable via option means.
For the cases of running wtwd from a Windows (desktop, start menu, etc.) shortcut, add a CLI option to pause the app before closing.
To allow users to use their own settings/options without specifying them all the time via CLI, add an XML/JSON-based config file to the CLI app. Priority of resolution then will be:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.