Concur with Mile-o-Phile.
I use a startup form that doesn't exit when they click the exit button. Instead, it makes itself invisible and minimized. But the code underneath it is still running based on the timer event.
When my users enter the app, this code logs their entry. When they leave the app, it logs their departure. There is no reason why you couldn't include some timer code that once every minute or so, does a DLookup on a hidden table that is read-only to everyone except the Admins group members. Include some parameters in this table, such as "APP_LOCKED" Yes/No. (You can define other things if you wish and if they are appropriate.)
Then, if your timer code detects the appropriate setting of your chosen lock variable, it just does a DoCmd.Quit or something equivalent.