Steve's Multipurpose Windows Gizmo with the Graviton screen blanker! | |
Page Updated: May 04, 2013 at 18:21 (4,176.40 days ago) | Viewed 60 times per day |
Why Wizmo was born . . . Window's built-in power management support is pretty cool. But sometimes you don't want timed operation, which is all Windows provides. When I upgraded from NT 4.0 to Windows 2000, I added three monitors. Windows 2000 supports multiple displays and you can never have too much desktop space. The monitors supported power management so they could be programmatically switched on and off. Also, I almost always know when I am leaving the computer unattended for a long time and the monitors should be powered down. I don't want them powering down when they shouldn't (that's not good for them), and leaving them on to timeout when I know they should be switched off seems non-optimal. (I feel the same way about screen blanking in general, but somewhat less so.) So I looked all around the Net for a simple, "single-click", power management app that would let me shut down my system's monitors. I came up dry. Necessity being the mother of invention, I decided to write my own. The result is Wizmo . . . which quickly grew into much more than just an auto power off utility.
Wizmo is driven by one or more command line options. When it is started without any options, or with options that it can't understand, Wizmo displays the on-screen dialog shown above, but it does nothing else. The dialog explains Wizmo's operation and lists all of Wizmo's built-in capabilities. The "Ref" button toggles the display between the main screen and a quick reference page. Wizmo is commanded to do more by using a Windows shortcut where it's possible to add commands directing Wizmo's actions:
The image above shows a shortcut to the wizmo.exe file. After Wizmo was downloaded from grc.com it was placed into the c:\windows\system directory for subsequent access. (There is nothing to install, Wizmo simply runs when requested.)
As you can also see in the image above, the Wizmo command "monoff", which immediately turns off all of the system's monitors, has been added to the command line after "wizmo.exe".
Multiple commands can be added in sequence combinations to create simple script-like programs. For example, the following Wizmo command line will raise the system's speaker volume only while the user is away from the computer, activate Wizmo's built-in "graviton" screen blanker, then lower the volume to its typical setting once the user has returned: Or, to mute the PC while you're away ... The resulting shortcut icon can be placed on the Windows start menu for easy access, placed on the Windows desktop, or added to the "shortcut" buttons just to the left of the Windows Start button. Wherever is most convenient for you. And speaking of the shortcut icon, Wizmo comes with a collection of different built-in icons that can also be chosen to help keep multiple Wizmo shortcuts separate and straight. (I am always looking for more icons that would be appropriate for the sorts of things Wizmo does. If you find any good ones, please attach them to some eMail and send them to support @ grc.com. I'll add them into Wizmo for everyone's use.)
Download and run the program for more help.
This page's Wizmo command vocabulary is listed in chronological order of its development and inclusion in Wizmo. New command descriptions will be appended to the bottom of the page.
|
standby trigger Windows' standby mode This is the shutdown mode, if supported, from which Windows can (sometimes) resume quickly. But it is still Windows, so save your files first. Example: wizmo standby | |
hibernate triggers Window's long-term hibernation If hibernation is supported by your Windows configuration, this command will trigger Windows to enter hibernation mode. This is the standby mode which Windows can remain in forever, since the system's RAM and device conditions are copied to hard disk. Hibernation is not supported by all Windows versions and configurations. Example: wizmo hibernate | |
logoff log off the current user Leaves the computer running, but attempts to gracefully close all of the current user's running programs and logs the current user off. Example: wizmo logoff | |
lock lock the workstation Exactly equivalent to pressing Ctl-Alt-Del then choosing "Lock Workstation." Example: wizmo lock | |
blindlock lock the workstation & power-off monitors Equivalent to pressing Ctl-Alt-Del then choosing "Lock Workstation" and keeping all system monitors powered off until login is successful. Example: wizmo blindlock This locks the system and powers down the monitors, forcing the logon password to be entered “blind” without the benefit of user-interface feedback. Before using this you should experiment with the regular “lock” command and using the Alt-U and Alt-P keys to select the username and password fields in case of unseen typos. | |
exit exit Windows Attempts to gracefully close all of the user's running programs and exits Windows to the "safe to turn off" state. Does not power down the computer. Example: wizmo exit | |
reboot restart (reboot) the computer Attempts to gracefully close all of the user's running programs, exits Windows, reboots the system and restarts Windows. Example: wizmo reboot | |
shutdown shutdown the computer Shuts down all of the user's running programs, exits Windows, then powers off the machine if supported by the system's hardware. Example: wizmo shutdown | |
The 'Damit' Variations Most Windows users have had the annoying experience (all too often) of having Windows decide that it just doesn't feel like shutting down, rebooting, restarting, sleeping, hibernating or whatever. To address Windows occasional lack of obedience, I added a handy (and sometimes crucial) feature: The shutdown trigger commands list above accept an optional exclamation point "!". For example: "reboot!" (pronounced "Reboot Damit!"). A word of caution: Since the Damit Variations force the requested function to succeed, even if programs or device drivers have refused to give Windows their permission to be shutdown, you should be certain that this is what you want and that any files are safely saved. The Emergency Damit Variations And . . . since you never know in advance when you might need one of the damit variations, if you don't want to pre-set shortcuts that way, you can request a one-time damit variation by holding down either of the shift keys when launching Wizmo with one of the shutdown trigger commands above. You will hear a "double sigh" to confirm the recognition of the emergency damit variation and the function will be executed as requested. | |
open opens the system's default CDROM drive tray. Example: wizmo open | |
close closes the system's default CDROM drive tray. Example: wizmo close | |
open={drive:} open or eject specific removable drive media. On systems with multiple CDROM or other removable drives (e.g. Iomega Zip and Jaz) this opens or ejects the media from the specified drive. Example: wizmo open=w: | |
close={drive:} close or load specific removable drive media. (NT/2000/XP only) On systems with multiple CDROM or other removable drives (e.g. Iomega Zip and Jaz) this closes or loads the media on the specified drive. This function is not available under Windows 95/98/ME. On those systems it will behave like the "close" function above. Example: wizmo close=r: | |
wanlock disable "wireless zero config" service Windows' "Wireless Zero Configuration" service periodically drops and restarts wireless connections in a misguided attempt to check for a "better" access point to connect with. Wizmo's "wanlock" command simply stops this service to prevent this annoying behavior. Once your machine is connected wirelessly, give the "wizmo wanlock" to "lock" Windows to the current access point and prevent those annoying disconnections. Example: wizmo wanlock | |
wanopen re-enable "wireless zero config" service This simply restarts the Windows "Wireless Zero Configuration" service which the "wanlock" command may have stopped. Rebooting the system does this automatically. But there may be times when you'd like to move to another access point and have Windows "find it" for you. Example: wizmo wanopen | |
blank activate the system's screen saver This simply trips the system's currently chosen screen saver exactly as if the screen saver's automatic timeout had been reached. Since this is not a Wizmo hosted screen saver, the command merely triggers one of Windows' built-in savers. Wizmo command scripting will therefore not "pause" at the screen saver command as they do for the Wizmo hosted commands. This limits the usefulness of Wizmo's command scripting for this command. Example: wizmo blank | |
autoblank={0|1} disables/enables timed blanking If, unlike me, you prefer timed blanking or your screens, there may be times like when you're on the phone, or watching the system perform a lengthy defragmentation when you don't want a short screen blanker timeout. This command, given a "0" argument (to disable autoblanking) or a "1" (to enable autoblanking), will disable or enable the system's automatic screen saving timeout. Example: wizmo autoblank=0 (disable timed blanking) | |
blackout blank the screen to "basic black" Leave the system's monitors powered on, but blank the screen(s) to absolute black. Colors other than black can be chosen by using the "desktop" command instead of "blackout." Since this is a Wizmo hosted screen saver, the mouse sensitivity "shake=" command can precede the "blackout" command to set or disable subsequent mouse movement unblanking. Other Wizmo commands to change system settings may be placed before and after the "blackout" command to alter the system's operation during the blanking. Example: wizmo blackout | |
desktop blank the screen to "desktop" color Leave the system's monitors powered on and blanks the screen(s) to the desktop's color. In practice this is very much like removing all desktop icons, windows, and other user-interface details from the screen(s). The "blank to" color is chosen from the Appearances tab of the desktop properties dialog. Since this is a Wizmo hosted screen saver, the mouse sensitivity "shake=" command can precede the "desktop" command to set or disable subsequent mouse movement unblanking. Other Wizmo commands to change system settings may be placed before and after the "desktop" command to alter the system's operation during the blanking. Example: wizmo desktop | |
monoff turns off all monitors Any system monitors that support Windows advanced power management (APM) will be immediately powered down until they are awakened by the keyboard or mouse movement. Since this is a Wizmo hosted mode, the mouse sensitivity "shake=" command can precede the "monoff" command to set or disable subsequent mouse movement unblanking. Other Wizmo commands to change system settings may be placed before and after the "monoff" command to alter the system's operation while the monitors are powered down. Example: wizmo monoff | |
graviton activate Wizmo's animated screen saver Back in 1972, the researchers at Stanford University's Artificial Intelligence Laboratory (SAIL) would often unwind at the end of the day by playing the original "Asteroids" game which was first developed there. I worked at SAIL during summers, and part time while attending high school, and spent many enjoyable hours playing the world's first video game. I always wanted to experiment with computing and displaying the motion of a set of mutually gravitationally attracted objects, where every object was attracted to every other. As you might imagine, the math is complex. Thirty years later, personal computers had become powerful enough to do this on the average desktop. So I finally wrote the code which became Wizmo's unique "Graviton" screen saver. Please see the "Graviton Screen Saver Parameters" section below for details about Graviton's optional configuration parameters. Since this is a Wizmo screen saver, the mouse sensitivity "shake=" command can precede the "graviton" command to set or disable subsequent mouse movement unblanking. Other Wizmo commands to change system settings may be placed before and after the "graviton" command to alter the system's operation while the screen saver is running. Example: wizmo graviton | |
shake={0-??} set Wizmo unblanking mouse sensitivity It can be annoying to return to your computer to find that the screen has unblanked itself (probably due to "mouse drift"), or to accidentally bump the mouse and have the screen unblank. To address this annoyance, the mouse movement unblanking sensitivity of Wizmo's screen savers can be set and/or completely disabled. A setting of "0" cancels all mouse unblanking (just press any key on the keyboard). Any higher value specifies how far the mouse must be moved before the screen will unblank. (Note that this can only be used with Wizmo's built-in screen savers.) Example: wizmo shake=0 graviton | |
quiet suppress the "Gibson sigh" Wizmo sound Since Wizmo is usually not seen, it generates a soft sound to indicate its performance of a task. This sound may be suppressed by placing the "quiet" command early in Wizmo's command list. Example: wizmo quiet desktop | |
volume={0-100} set the system's audio level If you enjoy associating sounds with system events, you probably grow accustomed to the sounds being at a certain volume level. So, when you need to turn that volume up or down when playing a video clip, or being away from your machine, it is convenient to be able to return the volume to its original level. Wizmo's "volume=" command easily sets the system's volume to a percentage of full volume. Another use for this is creating simple script programs. The example below demonstrates a simple script to turn the volume up while the screen saver is active, then back down after blanking is cancelled. Example: wizmo volume=90 monoff volume=20 | |
play={wavefile} play the specified file The "play=" verb gives you the flexibility to associate your own sounds and sound effects with your Wizmo shortcuts and command execution. Example: wizmo play=c:\windows\media\chimes.wav | |
wave={0-100} set the system's wave file audio level The system's wave file playback level can be controlled independently from the overall sound level. The "wave=" command allows this to be independently set. Example: wizmo wave=25 | |
mute={0|1} control the system's audio muting The system's audio generation can be easily muted without changing any other level settings. This can be useful to keep the system quiet during screen blanking or while talking on the phone. Example: wizmo mute=1 | |
The following command verbs may be used to specify the operation of Wizmo's built-in Graviton screen saver. Since Wizmo processes commands in the order of their appearance on the command line, these specifications must precede the "graviton" command on the command line. | |
particles={1-??} specify the number of objects Since Wizmo was written in 100% pure assembly language, and I spent a lot of time tuning and tweaking the gravitational equation processing, most PCs can compute and animate a surprising number of individual objects. The "particles=" command lets you specify how many Wizmo should create and animate. The number of particles chosen has a dramatic effect upon the overall character of the resulting animation. Example: wizmo particles=100 graviton | |
line initial diagonal particle alignment While Graviton's default initial random particle alignment is interesting, our visual cortex struggles to find patterns in noise. Therefore, providing a more "patterned" display is often visually pleasing. Graviton's "line" option causes the particles to be initially arranged in a single diagonal line. Since the particles begin with a symmetrical arrangement, the symmetry is never lost. Example: wizmo line gravity=1000 elastic graviton | |
grid={1-??,1-??} initial grid particle alignment The "grid" option creates an initial rectangular grid of particles with a specified width and height (grid=w,h). Since every particle gravitationally interacts with every other, large grids are time consuming to process because the number of computations increases by half of the square of the particle count ((Width x Height)^2)/2. However, the gravitational contraction demonstrated by a "uniform sheet" of particles is pretty spectacular. Example: wizmo grid=40,40 gravity=5 graviton | |
trails={1-??} specify the length of particle trails A display of the path taken by each object can be interesting. Many different effects can be obtained with long and short trails. Since the trail is composed of the individual previous positions occupied by the particles, the resulting "trail length" is directly proportional to the object's velocity at that time. The option "trails" without any value creates default 100-dot trails. Example: wizmo particles=5 trails graviton | |
gravity={0-??} specify the inter-particle attraction Different amounts of inter-particle attraction "gravity" result in very different and interesting displays. Graviton's default gravity is 10,000. With low gravity and several thousand particles, a demonstration of "stellar condensation" is created to show how matter forms clumps and condenses out of randomly distributed stellar gasses. On the other hand, very few particles and very high gravity demonstrates Wizmo's "matter/anti-matter" particle interaction where inter-particle collisions under high gravity result in the consumption of (negligible) particle mass for a increase of total system momentum. Stellar condensation: wizmo particles=1000 gravity=5 graviton Anti-gravity Collision: wizmo particles=4 gravity=25000 graviton | |
sun={0-??} create a screen centered gravity well Additional interesting effects can be obtained by creating a high-gravity field in the screen's center. Watching a large particle grid pour into a blackhole (see next option) is amazing. And with a sun- or blackhole-centric screen you can turn off all inter-particle gravity (gravity=0) to eliminate all particle-particle interactions. The option "sun" without any value creates a sun with default (10,000 strength) gravity. Nucleotide: grid=4,4 gravity=0 trails sun=50000 graviton Vortex: grid=10,10 gravity=0 trails=10 sun stop graviton | |
blackhole={0-??} create an invisible gravity well While the "sun" option above allows you to see the source and position of the screen's gravity well, it has the problem of creating a fixed object on the screen. An invisible gravity well can be created with the "blackhole" option. Example: replace "sun" with "blackhole" in examples above | |
infinite remove screen edge boundaries Wizmo's graviton particles are normally prevented from leaving the visible screen through the presence of screen edge boundaries that cancel the particle's departure velocity. However, Wizmo's graviton math supports an infinite universe in which particles are allowed to exist outside of visible space. The "infinite" option removes the screen edge boundaries allowing particles to leave and re-enter the screen at any time. Example: wizmo particles=100 gravity=100 infinite graviton | |
elastic create elastic screen-edge boundaries The screen edges become perfectly elastic rather than velocity cancelling. Overall system momentum will be conserved, but may generally increase due to the cumulative effects of matter/enery conversion through Wizmo's matter/anti-matter particle collision effect. Example: wizmo particles=100 gravity=100 elastic graviton | |
stop completely stop exiting particles All velocity of any particle attempting to leave the screen is removed. Rather than the default behavior of "sliding along" the screen edge, particles lose all of their velocity and momentum. Example: wizmo particles=100 gravity=100 stop graviton |
Matter/Anti-Matter Collision Dynamics However, "cancelling" one direction of the particle's motion removes momentum from the system every time a particle hits an edge. So I needed some means for adding energy back into the system in a way that would cause the overall environment to find and reach its own equilibrium, regardless of the user's other parameter settings. I designed a "particle collision model" which meets the requirements perfectly and has the added benefit of making the resulting display more interesting. Normally, an inelastic particle-particle collision would convert some kinetic energy into heat energy by using the collision to deform and flex the particles. Taking an approach which is presumably similar to Disney's "Flubber", Wizmo's Graviton particles consist of a matter/anti-matter composite that converts matter into energy, releasing mechanical energy in direct proportion and counter-reaction to particle flexure. As a result, colliding particles exit the collision event with substantially more velocity (and negligibly less mass) than when they arrived. This model results in the overall system obtaining and operating at an energy/momentum equilibrium since the Graviton screen edges remove energy in direct proportion to the particle's arrival velocity.
The "Grid" Option After I discovered and compensated for a least significant bit error in the Pentium's signed multiply instruction the gravity acceleration calculations became so perfect that the symmetry of the initial grid alignment is never lost.
A Few Of My Favorite Graviton Grid Settings
Happy Trails: grid=4,4 trails=50 gravity=1000 graviton
Trail Mix: grid=4,4 trails=200 gravity=20000 graviton
Escalation: grid=7,7 trails=20 gravity=100 elastic graviton
Aztecca: grid=4,4 trails=250 stop graviton
Flux Percolator: grid=16,16 gravity=10 stop graviton
Nucleotide: grid=6,6 gravity=5 trails=150 sun=25000 graviton
Vortex: grid=10,10 gravity=0 trails=10 sun stop graviton
Arabesque: particles=10 gravity=1 line trails sun graviton
Getting Graviton to Work
The installation of the Windows' DirectX system should also install an executable program titled dxdiag.exe. You should find and execute this file (it may have a link under your system's Start button) to see what's going on with your system's DirectX support. I sincerely hope you will have as much fun with Wizmo, and find it to be as useful, as I have.
The "news.grc.com" news server contains a "grc.wizmo" newsgroup where Wizmo fanatics hang out. They share favorite Graviton settings, share tips and tricks, and so forth.
|
Gibson Research Corporation is owned and operated by Steve Gibson. The contents of this page are Copyright (c) 2024 Gibson Research Corporation. SpinRite, ShieldsUP, NanoProbe, and any other indicated trademarks are registered trademarks of Gibson Research Corporation, Laguna Hills, CA, USA. GRC's web and customer privacy policy. |
Last Edit: May 04, 2013 at 18:21 (4,176.40 days ago) | Viewed 60 times per day |