Contents
 InfoSpy

Ver 2.30 (04/21/95)
with IntelliLib (tm)
(c) 1993-95 Dean Software Design

Contents

Overview
Loading InfoSpy
Closing InfoSpy

Menu Options
Printing Contents of Window

Spying on the Windows Environment
Actions you can take
Spying on Your System
Monitoring Your System
Setting System Alarms
Stress Functions
Scheduler - Tasks,Shutdowns,Reboots
Configuring InfoSpy
InfoSpy File Manager Usage
Memory Information
Heap Information

System Sentry
InfoSpy Security Options
InfoSpy Window Manipulation
IntelliLib
Problems, Errors and GPFs!
Windows 95 && Os/2 Compatability
Help Options

Version History


InfoSpy Overview

InfoSpy is a Windows utility that interrogates and lists the various items within your Windows environment, including:

A. Global Heap
B. Active Windows
C. Windows Tasks
D. Loaded Modules
E. Open Files
F. Memory Information
G. Dos Information

InfoSpy also acts as a real-time monitoring utility allowing you to monitor Windows messages and serial communications.

Windows developers, testers, debuggers and technical assistants have few tools that will allow them to detail what exactly is loaded and running under Windows.  InfoSpy will provide real-time information regarding the items that directly affect Windows and the user.

InfoSpy provides multiple adjustable windows showing one of the above Windows items.  Each window can be independantly scrolled and examined.

InfoSpy can also print or save values from it's examination of Windows as well as having several key utility features for terminating hung tasks and unloading loaded modules.


Loading InfoSpy

InfoSpy can be loaded:
- As an Icon from a Program Manager group.
- From the RUN feature of Program Manager or other Windows Shell programs.

If you have added InfoSpy to a group within Program Manager (or other shells) you can load InfoSpy by Clicking on the Icon.

If you use the RUN facility within Program Manager (or other shells) you can load InfoSpy by simply typing "InfoSpy" and pressing ENTER.

You can change the default INI file that InfoSpy uses by adding \CF:XXXXXXXX.XXX to the command line.  For example, if you want InfoSpy to use MYINI.FIL you would invoke InfoSpy as follows: INFOSPY \CF:MYINI.INI.


Closing InfoSpy

You can close InfoSpy by selecting the "Close" option from the System Menu, you can select "Exit" from the File Menu or you can double click your mouse on the System Menu indicator at the top left corner of the InfoSpy Window.


IntelliLib
IntelliLib (tm)

This program utilizes IntelliLib (tm) Library management technology.

IntelliLib enables this program to selectively use Windows Dynamic Link Libraries (DLLs) to perform non-standard tasks.  The user has the ability to choose which Libraries are loaded, thereby allowing him to tailor this program to his specific needs.

IntelliLib also allows this program to fully operate without DLL modules that were expected.  Functionality for a missing Library is disabled from the main program.

Additional Topics:
Setting Active Libraries
Menu Functions in Each Library


Setting Active Libraries with IntelliLib

InfoSpy can load several libraries that will provide you with more detailed information on several aspects of your Windows environment.

Using the IntelliLib setup screen, select each library that you want loaded or unloaded.

1. Load Message & File Activity Trace Library - This library contains the functions required to trace Windows messages.

2. Load Network Library - This library contains the functions required to view Network details.

3. Load Communications Trace Library - This library contains the functions required to trace communications sessions on serial ports.

4. Load DOS Inquiry Library - This library contains the functions required to make inquiries of DOSMode.

5. Load VM&VxD Library - This library contains the functions required to make inquiries of the Ring 0 Virtual Machines and Virtual Device Drivers.

6. Load General Windows Library - This library contains general functions used by InfoSpy for Windows Inquiries.

7. Load Stress Library - This Library contains all Stress functions used by InfoSpy.

8. Load Alarm Library - This Library contains all Alarm functions used by InfoSpy.

9. Load Schedule Library - This Library contains all Task Scheduling functions used by InfoSpy.

10. Load Icon & DLL Search Library - This Library contains the Icon & DLL search facilities.

11. Load min File Manager Library - This library contains limited file management capability such as file and directory manipulation. It also has functions for Disk formatting and Disk Cloning.

12. Load Heap Examination Library - This library contains all the Heap Examination tools needed to examine Heap Blocks.


List of Menu Choices per Library

INFALDLL - Alarm Library

Alarms 	Set Alarms...
Alarms 	Turn Alarms On & Off

INFCMDLL - Communications Spy Library

Monitor	Monitor a Communications Port...

INFHKDLL - Message Trace Library

Monitor	Trace Windows Messages to a Task...
Monitor	Trace All Windows Messages
Monitor	Monitor File Activity
Monitor	Monitor Keyboard Activity

INFNWDLL - Network Spy Library

System 	Network Information
System 	Device Redirection
System 	Netware Info
System 	Netware Connections
System 	Print Queue Info
System 	Netware Servers
System 	Show All Netware Objects

INFDSDLL - DOS System Spy Library

Spy       	Open Files and File Handles
System 	Memory Control Blocks
System 	DOS Device Drivers
System 	Show Master Environment
System 	Current Environment
System 	Newest Commmand.Com Environment
System 	Dump CMOS Values
Action    	Save CMOS Values to a File
Action    	Restore CMOS from a File

INFWNDLL - Windows Spy Library

Spy       	Global Atom List
Spy       	Memory Usage by Task
System 	Memory Information
System 	Heap Information
System 	System Information
System 	Timer Information

INFSTDLL - Stress Library

Stress 	Grab Global Heap...
Stress 	Grab GDI Heap...
Stress 	Grab USER Heap...
Stress 	Grab File Handlers...
Stress 	Grab Disk Space...
Stress 	Grab Timers...
Stress 	Grab Printers & Comm Ports...
Stress 	Grab DOS Memory...
Stress 	Start Continuous Disk I/O...

INFVMDLL - Virtual Machine (ring 0) Library

System  	List of VXDs
System  	List of VMs
Monitor	Trace VM Messages

INFFMDLL - Mini File Manager Library

Action  	Run Mini File Manager

INFSCDLL - Task Scheduler Library

Scheduler	Scheduler Setup
Scheduler	Start & Stop Task Scheduler
Scheduler	Edit the Task Scheduler

INFICDLL - Icon & DLL Search Library

Spy       	DLL Search
Spy       	Icon Search

INFHPDLL - Heap Examination Library

Spy       	Application Summary
Heap      	Show All Heap Blocks
Heap      	Select Module
Heap      	User Local Walk
Heap      	GDI Local Walk
Heap      	Hex Dump of Block
Heap      	Local Heap Entries
Heap      	Sort by Address
Heap      	Sort by Handle
Heap      	Sort by Size
Heap      	Sort by Type
Heap      	Sort by Module

INFSEDLL - System Sentry Library

Sentry    	System Sentry Setup
Sentry    	Monitor Application Usage
Sentry    	Turn Program Access On,Off
Sentry    	Program Access Setup

Menu Options That are Visible All The Time
This only includes InfoSpy Functionally unique menu options, not standard options.

Configure 	Preferences
Configure 	Icon Setup
Configure 	IntelliLib
Configure 	Show or Hide Button Bar
Configure 	Show or Hide Status Line
Configure 	Button Bar Setup
Configure 	Hex Font Setup
Configure 	List Font Setup
Spy       	Active Windows
Spy       	Active Window Class Types
Spy       	Windows Tasks
Spy       	Loaded Modules
Action    	Lock Terminal
Action    	Capture Desktop Image to Clipboard
Action    	Capture a Window Image to Clipboard
Action    	Cut a Portion of Your Screen to Clipboard
Action    	Terminate an Application
Action    	Unload a Module
Action    	Put a Task on Top of All Others
Action    	Compact Global Memory
Action    	Windows Shutdown
Action    	Restart Windows
Action    	Warm Boot Your System
Action    	Cold Boot Your System
System    	Multimedia Devices
System    	Dump Stack for a Task
System    	Show System Parameter Block
Monitor	Automatic Timed Window Refresh
Monitor	Monitor Resources & Memory
Monitor	Monitor DDE Activity
Monitor	Memory Watcher


Menu Options

InfoSpy has the following menu options:

File Menu
Spy Menu
Action Menu
Monitor Menu
System Menu
Configuration Menu
Memory Menu
Heap Menu
Scheduler Menu
Window Menu
Help Menu


File Menu

The File Menu provides functions for saving, printing and exiting InfoSpy:

Save Contents of Active Window To File
Print Setup
Print Contents of Active Window
CopyContents of Active Window To Clipboard
Exit InfoSpy


Save As

The Save Contents option will save the contents of the Active Window to a file. This is useful in order to save a snapshot for later review.

When selected, this option displays the standard Windows File Save dialog.  Enter a valid file name and select Ok to save the contents of the active Window.


Clipboard
Copy Contents of Active Window to Clipboard

The Copy Contents option will copy the contents of the Active Window to the Windows Clipboard.  If the contents of the active window exceed the maximum size of the clipboard, then excess data will be truncated.


Setting Print Options

The Print Setup option will allow you to modify the current print parameters and then optionally print the contents of the Active Window to a printer.Print Options
Printer Selection
Printer Port Selection


Print Contents of Active Window

The Print Contents of active window option will print the contents of the Active Window to a printer using the current printer setup options.


Print Options

Before printing a file or a portion of the Viewing Window, you must select the various print options from the Print Request window.

Printer - see the section on Selecting a Printer

Printer Port - see the section on Selecting a Communications Port

Margins - The Left,Right,Top and Bottom margins can be modified so that your print page size can be adjusted.  Valid values are from 0-page size in inches and parts of inches.

Copies - Select the number of copies to print.

Print Font  - You can choose between printing using the Font used in the viewer or the Default printer Font.

Print Lines - The values that are initially shown here are '1' and 'Number of Lines' in the text.  You may adjust these values to print only a portion of the file or Viewing Window.

Print Selected Text - If you only want a specific range of line numbers to print, select this button and enter the range of line numbers.

Print Line Numbers - If you select this field your output will have line numbers printed at the start of each line.

Print Page Numbers - If you select this field your output will have page numbers at the top of each page.


Selecting a Printer

The Print Request window will show you the currently selected printer in the Printer field.  If you want to change to another available printer, click on the Select Printer button.

The Select Printer window will appear with a list of available printers as well as your current printer.  To select any of the available printers, Click your mouse on the selection, it will then appear in the Current Printer field.

Click on Ok button to save your change of printer, otherwise click on Cancel to exit without changing your printer.

It is recommended that you Set up a printer that has been made active.  This can be done using the Setup button on either the Print Request window or the Select Printer window.  The setup for each printer will be different, consult the printer manual or the Windows manual for more information.


Selecting a Communications Port

You can change the communications port to which you will be printing.  This facility can let you print to a printer hooked to any valid port.  In addition, this option provides a means for you to print to a file.

In the Print Request window there will be a list of available ports and a field showing the port to which you are currently assigned, for example:

- LPT1:
- LPT2:
- LPT3:
- COM1:
- COM2:
- EPT:
- FILE:
- LPT1.OS2

To change ports, select the port to which you want to direct your output then double click your mouse on that selection.

When selected, the new port will appear in the Printer Port field.

Note: InfoSpy or Windows will not ensure that a printer is connected to the port until such time as a file is printed.


Spying on the Windows Environment

InfoSpy provides the following options for examining the various aspects of your Windows environment:

List and explore all Active Windows.
Build a Window Class List.
List all Open Files and allocated File Handles.
List all Windows Tasks.
List all Loaded Modules.
Build an Application Summary for a specific task.
List all Global Atoms
List the Memory Usage by Task for all loaded tasks.
DLL search - Usage, References and Duplicates Files.
Icon search - Search & list Icons in Windows Files.


Active Windows

This option lists all active windows in your Windows environment. A window can be described as any window, dialog box, list box, button, control or Icon that is active (either visible, hidden or minimized) in your Window environment.

Each line in the listbox contains the following information on a Window:

- The handle
- The type of Window (Top Level, Child, Icon)
- The parent handle
- The task handle
- Class name
- Window name

In order to further detail each Window double click on it.  This will create a dialog box that describes the following items on each Window:

- Window Style
- Class Style
- Windows function address
- Class extra allocation
- Windows extra allocation
- Window rectangle co-ordinates
- Window rectangle size
- Window related handles


Windows Class List

This option provides a sorted list of Window Classes currently in use by the Modules loaded in Windows.

Each class name is preceeded by the loaded module andthe Heap module from which it is loaded.

To get detailed information on the class module, double click on it.  A window will appear detailing the class attributes as well as instance and handle information.  Select the Ok button to close the detail window.


Open Files

This option provides a list of all open file on your system with their assigned File Handle, owner PSP segment, Path, Date and Time.

Certain applications (especially efficient ones) do not keep the file they are working on open, therefore those files may not appear in the list.


Windows Tasks

The 3rd list box lists all the active tasks within the Windows environment.  A task essentially is a loaded application that may have many modules or Windows.

The items listed here are the same as those listed by the Windows Task Manager which can be invoked by pressing CTRL-ESC on your keyboard.  Unfortunately the Windows Task Manager does not provide any detail on the listed task.

The information provided about each task is:

- The handle
- The parent's handle
- The module's handle
- The name of the task

In order to get more details on a task double click on it.  This will cause a dialog to appear that relates the following information:

- The parent handle
- The instance handle
- The value of the SS register
- The stack top
- The minimum stack
- The PSP offset
- The Queue handle
- The Module handle
- The SP register
- The Stack bottom
- Number of Events

Related subjects:
Terminating Tasks


Loaded Modules

This option builds a list of all the modules that are currently loaded by your Windows environment.  Modules include programs, DLL, other libraries, fonts, drivers and any other code that is loaded from a file.

When you double click on a module that is listed you will be presented with the size, date and time of the module as it appears on disk in the path that is listed.  InfoSpy will also attempt to determine the Heap usage for the module by examining the Heap, a process which can be cancelled at any time by selecting the Cancel button on the status window.

Related Subjects:
Unloading Modules


Global Atoms

As defined in the Windows API Global Atoms are integers that uniquely identify strings that are stored in tables that can be accessed by any program.

The Global Atom table can be listed using the Global Atom List function found under the Spy menu.

Each line in the report will show the Atom #, the size of the string and the string itself.


Memory Usage by Task

This feature allows you to view the amount of memory currently used by all active applications on your system.  These figures can assist you in determining which applications are utilizing too much memory.

Each line of the window provides the following information:

1. Task Handle.

2. Task Name.

3. Stack usage - the number of bytes of stack in use by the application.

4. Global Heap usage - the number of bytes of global heap in use by the application.


Application Summary

The Application Summary option provides a means of summarizing all the Task, Module, Window and Heap information on a specific application.

A summary can be used to debug an application or provide a snapshot to an application vendor of what resources and memory an application is using.

Related Subjects:
Cancelling the Application Summary


Search for Icons in Windows Files

The Icon Search facility can be used to identify and list the Windows Icons found in any Windows type file, including: 'EXE','COM','DLL','VBX','DRV' and 'ICO'.

To invoke the Icon search you must first ensure that the Icon & DLL search library is loaded via the IntelliLib library management facility.  If it is loaded you will see the Search for Icons menu option located on the Spy menu.

From the Icon Search dialog you can invoke 2 functions for locating Icons:

1. List Icons in a File.  Press the Load from File button. You can then select the file from the File List provided.

2. Search for Icons.  Press the Search button. Either select a Drive to search or enter a starting directory path.

When this function is searching for Icons it will display a status box with a Cancel button. Pressing the Cancel button will stop the search and will display the results so far.

You can select any Icon from the list and copy it to the Windows clipboard by pressing the Copy to Clipboard button.  This will enable you to Paste the Icon image into any drawing or Icon creation program.

Additionally, by pressing the Save as BitMap button, you can save any selected icon to disk in the standard Windows Bitmap (BMP) format.  You will be prompted for a file name for the Bitmap to be saved to.  Once saved, the BMP file can be read by any paint BMP compatible paint program.


DLL Usage, References & Duplicate files

InfoSpy can be used as a tool to help determine whether your system is bogged down with DLLs that are either never referenced or reside in more than 1 place on the disk.

From the Spy menu select the DLL Search option.  The Dialog that will appear will allow you to select which Disk or Network drive will be searched for files that reference DLLs as well as DLL files themselves.  Note that all drive letters appear in the pull down list, if you select a drive that does not exist InfoSpy will provide a null report.

Once the drive is chosen, selecting Ok will invoke a search of the selected drive for all files that may reference DLLs. Once complete this process will then determine which DLLs are never referenced by any other programs and finally the process will report any duplicate DLL files that reside on the disk.

When you select an item from one of the 5 list boxes InfoSpy will attempt to identify that item in the remaining 4 list boxes.  If found the item will be highlighted.

When you select an item from the List of Files that Reference DLLs you will notice the 6th list box at the bottom of the dialog will list the DLLs that are referenced by that file.

When you select an item from the List of DLLs that are Referenced you will notice the 6th list box at the bottom of the dialog will list the names of the files that reference the selected DLL.

When you select the Ok button you will be returned to the drive selection dialog.

Note: There is now a multitude of programs that do not load their DLLs automatically, instead they are referenced as needed.  By not loading DLLs automatically the Compiler or Linker for the new Windows EXE file format will be unable to put the DLL name into the DLL reference table that resides in the file's header.  This in turn prevents InfoSpy and other DLL search programs from determining which DLLs that program uses.

The conclusion:  The table of unreferenced DLLs only indicates that the DLLs are not referenced by any other program that may automatically load them, it does not necessarily mean that the DLLs are not referenced individually as needed, so be careful when you delete any DLL files!

As an example: InfoSpy individually loads its DLLs so you will see several DLLs such as InfWnDLL and InfCmDLL in the unreferenced DLL list.

Related subjects:
Unloading Modules
Deleting Duplicate Files


Unloading Modules

When you select Unload you will be asked to confirm that you want to unload the module you selected from the Loaded DLL list.  If there are multiple copies of a module loaded, Unload will unload a single copy each time, until finally all copies are unloaded.

Note: Unloading a module may adversely affect Windows.  Be cautious about what you unload since unloading device drivers, DLLs or other modules may cause applications to hang or Windows to lock up.


Deleting Duplicate Files

When you select Delete you will be asked to confirm that you want to delete the DLL file name you selected from the Duplicate DLL list.


Actions

The following actions are available from the Action menu. Note that several actions are available through Libraries loaded with IntelliLib and therefore may not always be visible.

Locking the Terminal
Screen Capture Utility
Unloading Modules
Terminating Tasks
Compacting Global Memory
Windows Shutdown
Restarting Windows
Warm Boot Your System
Cold Boot Your System
Put a Task ON TOP of all Others
Saving CMOS values to a File
Restoring CMOS from a File
Invoking the InfoSpy File Manager


Screen Capture

InfoSpy contains a powerful utility that allows you to capture your Windows screen, or a portion thereof to the Windows clipboard.  You can paste these captured images into popular word processors, editors or form generators.

From the Action menu you can select one of the following capture options:

Desktop - Select the Capture Desktop Image to Clipboard menu option to cut the entire screen to the clipboard. All resolutions are supported (640x480, 800x600, 1024x768, etc..)

Window - Select the Capture Window Image to Clipboard menu option to cut the frame & contents of a specific window to the clipboard.  You will be shown a magnifying glass which can be moved over any window. When positioned, press the left mouse button to capture the Window image.

Portion - Select the Cut a Portion of your Screen to Clipboard menu option to cut a specific area of the screen to the clipboard.  You will be shown a positioning + cursor which can be dragged anywhere on the screen to cut the specific area to the clipboard.

Once any of the 3 options is selected and the image is copied, you will be presented with a Window detailing the size of the image copied to the clipboard.  You can also Invoke the Bitmap Editor to view the captured image or you can Save the bitmap image to file.

The screen capture functions can be invoked while InfoSpy is Iconic by clicking the RIGHT mouse button over the InfoSpy Icon.

Note: If InfoSpy is Iconic the InfoSpy icon will be hidden prior to capturing Desktop images.


Terminating tasks

If a Windows program hangs or enters an infinite loop, Windows may not be able to terminate it using the standard Program Manager termination.  The 'Terminate' menu option will terminate any program in any state.

When you select 'Terminate' you will be asked to confirm that you want to actually terminate the task you have selected.

Note: as the warning states, terminating a task may adversely affect Windows.  It is strongly recommended that you Restart Windows immediately.


Compacting Global Memory

This function ensures that Global Memory has released all blocks no longer in use by programs and then makes sure all free memory blocks are contiguous.

If you get a low memory warning, try running this function to help ensure you have sufficient memory for all applications.


Unloading Modules

Windows loads many modules, sometimes multiple copies of a module.  In order to free resources, memory and generally improve the performance of your system, you can unload modules that are listed in the Loaded Modules list box. The Unload menu option will unload any module listed in the list box.

When you select Unload you will be asked to confirm that you want to actually unload the module you have selected.  If there are multiple copies of a module loaded, Unload will unload a single copy each time, until finally all copies are unloaded.

Note: Unloading a module may adversely affect Windows.  Be cautious about what you unload since unloading device drivers, DLLs or other modules may cause applications to hang or Windows to lock up.


Windows Shutdown

The Windows Shutdown feature will cause Windows to Exit and return to the Dos Prompt.

Related Subjects:
Rapid Application Shutdown


Restart Windows

The Windows Restart feature will cause Windows to Exit, return to the Dos Prompt and then Restart.

This feature can be used when Windows is Acting Up or when Windows options have been changed and a Windows restart is requested.

Related Subjects:
Rapid Application Shutdown


Warm Boot Your System

The Warm Boot feature will cause Windows to Exit to the DOS prompt and will then automatically perform a warm boot of your system.

Note: A warm boot does not necessarily clear memory interrupt or irq related problems, use the Cold Boot option to truly clean up your system.

Related Subjects:
Rapid Application Shutdown


Cold boot Your System

The Cold Boot feature will cause Windows to shutdown and will then automatically Cold boot your system.

Related Subjects:
Rapid Application Shutdown


Rapid Application Shutdown

InfoSpy provides a rapid application shutdown feature that is used with the Windows Shutdown, Restart and System Reboot options.

The rapid application shutdown destroys all active applications on your system (including DOS sessions) before causing Windows to Exit normally.

The drawbacks of using the rapid application shutdown are that applications may not save work to files as they normally would with a shutdown, however this is probably offset by the fact that Windows exits in 2-3 seconds!


Put a Task ON TOP of all Others

You can use InfoSpy to make any running program the one that is ON TOP of all others, in other words if it is covered by another windows it will always show through as being on top of it.

To make a task On Top of all others select the Put a Task On Top option from the Action menu. Your Windows cursor will change to appear as a framed crosshair. Position the cursor over the window or icon that you want to be on top and press the left mouse button.

If you press the mouse button while the crosshair cursor is in a blank area of the screen you will get an error message stating that there was no window to select, however this enables you to proceed without putting a window on top.

Note: You can make multiple Windows On Top however the priority of who's on top of who will follow your selections.


Save CMOS Values to a File

In order to ensure that your CMOS values are not destroyed if the CMOS battery backup fails you should save the CMOS values to a file which can be restored later.

The Save CMOS option under the Action menu lets you specify a file to which the CMOS values will be saved.  We strongly recommend that the values be saved to a diskette which can be saved in a safe place.

Note: This function is in the Dos Functions Library (INFDSDLL.DLL) and will only appear on the menu if this library is loaded.


Restoring CMOS from a File

If your system's CMOS has be violated or destroyed you can restore it from a previously saved copy made with InfoSpy's Save CMOS utility.  To restore the CMOS use the Restore CMOS option on the Action menu.

You will be given a file dialog for selecting the correct file, after choosing the file InfoSpy will load the values directly into CMOS.

Note: This function is in the Dos Functions Library (INFDSDLL.DLL) and will only appear on the menu if this library is loaded.

Note: Do not attempt to use InfoSpy's CMOS restoration utility to restore CMOS saved with other utilities!

Restoration From DOS: Your InfoSpy installation diskette contains the program RESTCMOS.EXE. This program can be used to restore an InfoSpy created CMOS save file from the DOS line.   If your CMOS is destroyed you may not be able to get into Windows to use InfoSpy's restoration, in this case use RESTCMOS.EXE


Explore your System

Dumping a Task's Stack.
Windows System Information
MultiMedia Devices
Show System Parameter Block
Master Environment
Current Environment
Newest DOS Environment
Device Redirection
DOS Memory Control Blocks
DOS Device Drivers
Timer and Clock Information
Network Information
List of VxDs
List of VMs (virtual machines)
Dump CMOS Values


Dumping a Task's Stack
Dumpinging a Tasks's Stack

This option allows you to take a snapshot of a given task's stack within Windows.  An application's stack is dynamic, changing every time an application is active, therefore the information you receive may only be correct for the instance of when the snapshot was made.

The stack information provided is as follows for each entry within the stack for the application:

Stack Trace: SS BP CS IP Segment# and Module id.
Stack offsets.
Next CS:IP location.


Windows System Information

Windows System Information displays a child window containing Windows and DOS version information.

Select the Close button under the System Menu to close this window.


MultiMedia Devices

InfoSpy will interrogate the Multi-media Windows hooks and will provide you with a list of all Multi-media devices connects via Windows, including:

- CD Rom
- Keyboard, Mouse and Joystick
- Sound devices

Note: InfoSpy can only detect those multi-media devices that were attached via a Windows call, any that are attached from DOS will not appear in this list.


Show System Parameter Block

This option displays the current settings of the system parameter block which contains values loaded by Windows from the WIN.INI file.


Master Environment

The Master Environment contains all the environment variables set prior to Windows loading.  This list should provide similar results to doing the SET command from the DOS command line when Windows is not loaded.


Current Environment

The Current Environment contains all the environment variables carried over from DOS into the Windows environment.

This window also provides the amount of memory remaining to the current environment from the allocated maximum (default to 64k).


Newest DOS Environment

Multiple DOS systems may have several DOS environments.  This window will provide a summary of the environment variables within the newest DOS environment.

Note: In most cases a message box will appear informing you that the Newest DOS environment matches the Master DOS environment.  This is a normal situation for a single DOS system.


Device Redirection

The Device Redirection list provides a list of all Disk Drives and communications ports that are allocated via DOS, Windows or a Network.

Disks can be considered Removable, Fixed or Remote (Redirected to a network device).  Any disk that has no redirection information is either not attached to your system or is an invalid physical device.

For detailed disk information double click on any Permanent drive.Related Subjects:
Detailed Disk Information


Detailed Disk Information

The detailed disk information window provides the following information on any permanent disk drive attached to your system, including Network drives:

- Total space on disk (in bytes).
- Free space on disk (in bytes).
- Bytes per sector.
- Bytes per cluster.
- Disk serial number.

Select the Ok button to return to the Device Redirection window.


DOS Memory Control Blocks

This option will provide you with access to the DOS Memory Control Blocks as allocated when Windows was loaded.  This is similar to the results of a MEM or CHKMEM command in DOS.


DOS Device Drivers

This option will list the DOS Device Drivers as allocated outside windows.


Timer and Clock Information

This option will list the number of seconds since your system was last started and since Windows was loaded.  The Timer resolution refers to the frequency in which the clock is referenced for timer operations.

InfoSpy will also determine the number of user and system timers available on your system.  Any timers already allocated to other applications will not be enumerated by this function.


Network Information

In order for InfoSpy to gather any Network information the "Load Network DLL" option must be set under the "Intellib" configuration screen.

The Network module will identify most networks under Windows.  If a network is found a new menu option will be added under System which will have a description of the type of network.

Additional Topics:
Netware Information
Loading the Network DLL


Netware Information

InfoSpy will add the following menu options under System if you are running a Netware Network:

Netware Info - Information on your Preferred server and your workstation, including connection ids.

Netware Connections - Lists all the active connections on your Preferred server.

Print Queue Info - Lists all the Print queues that you have access to as well as the Status and number of jobs in the queue.

Netware Servers - Lists all the Netware Servers on your network regardless of whether you have access to them or an account on them.  The servers that you are connected to will list a connection id.

Show all Netware Objects - One of the most obscure issues under Netware -> BINDERY. This option lists all Netware objects within your universe which are found in the Netware bindery.  This would include Servers, Queues, Groups, Users, Gateways and much more!

Additional Topics:
Details on Netware Objects


Details on Netware objects

InfoSpy can provide details on several Netware objects.  To see details simply select the item from any of the Netware menu objects and Double Click your mouse on that object.  A window will appear displaying any additional details.  If no window appears or a "not implemented" message appears this means that there are no details available on that object.

The following objects have additional details:

Netware Users - Shows the full user name and all Netware groups to which they belong.

Netware Groups - Shows the full group name and all members of that group.


VxD List
List of VxDs (Virtual Device Drivers)

VxDs (Virtual Device Drivers) are loaded in Ring 0 of Windows. The use of VxDs in Windows 3.10 is blossoming, driving access to most every device.  Windows 3.11 and upcoming versions of Windows will rely heavily on VxDs to replace many of the drivers now loaded by Dos.

InfoSpy will access Ring 0 to provide a precise list of all VxDs loaded under Windows.

Note: Due to the way InfoSpy accesses Ring 0 there can only be one VM or VxD window active at time, all other VM & VxD menu options are disabled until the active Window is closed.

Additional Topics:
Loading the VM&VxD Library


VM List
List of VMs (Virtual Machines)

InfoSpy will list all Virtual Machines currently loaded on your system.  In general: Windows is a virtual machine and each DOS session under Windows will be an additional virtual machine.

Note: Due to the way InfoSpy accesses Ring 0 there can only be one VM or VxD window active at time, all other VM & VxD menu options are disabled until the active Window is closed.

Additional Topics:
Loading the VM&VxD Library


Dump CMOS Values

You can use the Dump CMOS Values option on the System menu to view the 100 bytes of CMOS values that your system retains.

Note: This function is in the Dos Functions Library (INFDSDLL.DLL) and will only appear on the menu if this library is loaded.

Additional Topics:
Loading the DOS Functions Library


Monitoring your System

The monitoring features of InfoSpy are powerful but safe ways of examining what is happenning on your system:

The following Monitor functions are available within the main InfoSpy module:

Monitoring System Resources & Memory.
Monitoring DDE Activity.
Task Memory Watcher.

The Following Monitoring functions are available through IntelliLib libraries:

Tracing Messages to a Task.
Tracing all Windows Messages.
Monitoring File Activity.
Monitoring Keyboard Activity.
Monitoring Serial Communications
Tracing Virtual Machine (VM) messages
Setting a timed Automatic Refresh of all InfoSpy Windows.
Setting System Alarms that run in the background.


Background Monitoring


Monitoring System Resources & Memory

InfoSpy can act as a system resource and memory monitor to help you dynamically view the changes in resources and memory as windows event occur.

You can monitor the real-time level of: System Resources, GDI Resources, USER Resources, Virtual-Memory-Manager Linear memory available, Heap Space Available and Number of Heap Items.

To invoke resource and memory monitoring select the Resource & Memory option from the Monitor menu.  The selection screen allows you to specify which levels to monitor, you may select any or all of the options.

Once the options are select, you can start the monitoring in text mode by pressing the Text Display button or in a bar-graph display using the Graphic Display button.

During the monitoring session a clock will be displayed at the top of the monitor window to indicate the actual time being monitored. The display will only refresh if any of the monitored values changes.

The Monitor checks all values every 1000 ms.


Monitoring DDE Activity

This function allows you to trace all DDE transactions regardless of the origination or destination.

From the Monitor menu select the Monitor DDE Activity option.  Select specific DDE transaction(s) to monitor and click on the Ok button to begin monitoring.


Task Memory Watcher

The InfoSpy Task Memory Watcher provides a dynamic trace of memory usage for the current task. As you switch between Windows tasks the Memory Watcher will concurrently re-assign its trace to be on the new task.

The data contained in the trace is shown in the following example of watching InfoSpy:

Watching: InfoSpy

Declared stack size:        5036
Actual stack usage:         64750

Data Segment size:          55200
Static Data:                38950
Space Remaining in DS:      3070

Heap Allocation (fixed):    296
Heap Allocation (moveable): 548
Free Space in Heap:         7300
Un-Used Heap:               10336


Tracing Messages to a Task

In order for InfoSpy to provide Message Tracing "Load Message Tracing DLL" option must be set under the "Intellib" configuration screen.

To trace messages being sent to a specific task select a task from the list of Windows tasks.

From the Message Trace Selection Screen that will appear, either choose a specific message filter or select the Trace All Message Filter Types option.

You may also indicate whether you want to results of the trace to appear on your screen or be saved to a disk file (or both).

Start the trace by selecting the Start button or use Cancel to exit the function without starting a trace.

When the trace starts a Window will appear in InfoSpy showing the the number of messages already captured.  In addition, the PauseMessage menu option will appear on InfoSpy's menu.

Related Subjects:
Windows Message Filters
Pausing and Restarting a Trace
Examining a Message Trace


Tracing all Windows Messages

In order for InfoSpy to provide message tracing the "Load Message & File Activity Trace Library" option must be set under the "Intellib" configuration screen.

This option traces messages going to all tasks within Windows.

From the Message Trace Selection Screen that will appear, either choose a specific message filter or select the Trace All Message Filter Types option.

You may also indicate whether you want to results of the trace to appear on your screen or be saved to a disk file (or both).

Start the trace by selecting the Start button or use Cancel to exit the function without starting a trace.

When the trace starts a Window will appear in InfoSpy showing the name of the task being traced as well as the number of messages already captured.  In addition, the PauseMessage menu option will appear on InfoSpy's menu.

Note: Messages sent to InfoSpy will not be captured.

Related Subjects:
Loading the Message & File Activity Trace Library	Windows Message Filters
Pausing and Restarting a Trace
Examining a Message Trace


Monitoring File Activity

InfoSpy provides you with the ability to monitor most File Activity within Windows or DOS (under Windows) applications.

To start tracing file activity select the Monitor File Activity option from the Monitor menu.

You can select whether you want to trace file activity in Windows programs or in DOS programs, or both (the default).

You can also select from the list of monitored file activities that you wish to see (default is all).

Finally, select whether you want to see the results on your screen (the default) or be saved directly to a file, or both.

Related Topics:

Loading the Message & File Activity Trace Library


Monitoring Keyboard Activity

InfoSpy can provide you with a log of all keyboard activity. To invoke this function select the Monitor Keyboard Activity from the Monitor menu.

Select from the following options:

Activity per minute - This will provide a minute by minute breakdown of what keys were pressed.

Direct Ouput - You can have the monitor output appear on your screen or be saved to a disk file or both.

This function buffers 80 characters of typed data before putting a line on the screen or in the buffer, so do not panic if nothing appears immediately!

Note: - This function is very fledgling in nature. You will find that extra characters appear and some characters do not appear. In addition any Shifted characters do not appear at all.  However, even with these flaws this function will let you monitor whatever is being typed on the keyboard.


Tracing Virtual Machine (VM) Messages

InfoSpy can trace all virtual machine messages issued on Ring 0 of Windows via this option.  Messages are issued when you move between DOS sessions, when you open or close a DOS session or when you shell a new COMMAND.COM within a DOS session.

Note: Due to the way InfoSpy accesses Ring 0 there can only be one VM or VxD window active at time, all other VM & VxD menu options are disabled until the active Window is closed.

Related Subjects:
Loading the VM&VxD Library


Windows Message Filters

GetMessage Filter (wh_getmessage) -

System Message Filter (wh_sysmsgfilter) -

Standard Message Filter (wh_msgfilter) -

Hardware Message Filter (wh_hardware) -

Mouse Event Filter (wh_mouse) -

Keyboard Event Filter (wh_Keyboard) -

Default Windows Procedure Messages (wh_DefWndProc) -


Pausing and Restarting a Trace

When tracing messages you have the ability to pause and restart the trace.  When a trace starts the PauseTrace menu option will appear on InfoSpy's menu, use it to Pause the tracing process indefinitely.

When you Pause a trace the menu option will change to read ReStartTrace.  Selecting this menu option will restart the trace with the same parameters as when it was paused.

When a trace is ended the PauseTrace and ReStartTrace menu option is removed from InfoSpy's menu.


Examining a Message Trace

Tracing Windows messages is an art.  You will be suprised at the number of messages required to do the simplest of tasks, however we all know that Windows had a lot of overhead.

There are a lot of Message Spy utilities on the market (Microsoft,Borland,etc..) that provide extremely detailed information regarding each message and the parameters that are passed.  In our case however we simply wanted to provide a concise, easy to read summary of each message to assist you in understanding and debugging your Windows program(s).

First you need to understand the types of messages that you can trace. Use the Windows Message Filters section of this help text to get information on message filters.


Automatic Windows Refresh

One of the most effective ways of tracing Windows activity is to set an automatic timed refresh on any of InfoSpy's informative windows. This will cause the contents of any InfoSpy window that is active to be completely refreshed based on an interval (in seconds) that you specify.

To set the automatic refresh interval use the InfoSpy Preferences screen under the Configure menu option.

To start the automatic refresh option first set the InfoSpy windows you want updated as well as their position within the InfoSpy frame.  Then select the Timed Refresh (x secs) option from the Trace menu. When selected and active a checkmark will appear next to the menu option.

After the initial interval you will notice that all InfoSpy windows will begin automatically refreshing.  To stop the automatic refresh select the Timed Refresh menu option again, the checkmark will disappear.


Setting System Alarms

InfoSpy has the capability to monitor the key resources of your system in the background and then alert you when they fall below a predefined level.

Select the Set Alarms option from the Monitor menu in order to select and set the Alarms.

Each of the following system resources can be set:

GDI Heap - Set the minimum percentage available at which the alarm will trigger.

SYSTEM Heap - Set the minimum percentage available at which the alarm will trigger.

USER Heap - Set the minimum percentage available at which the alarm will trigger.

Virtual Memory - Set the minimum number of memory pages available at which the alarm will trigger.

Global Heap - Set the minimum number of bytes available at which the alarm will trigger.

DOS Memory - Set the minimum number of bytes available at which the alarm will trigger.

Disk Drives - For each of the 4 disk drives you can set the minimum number of bytes available at which the alarm will trigger.

Virtual Memory Alarm - When the system swap file is used due to low virtual memory, this alarm will trigger.

Additional Topics:

Resetting Alarms


Resetting Alarms

InfoSpy alarms will automatically reset themselves once the actual level goes back above the minimum level you set.

In addition, you can press the Reset button by each alarm to manually reset the alarm.

When InfoSpy is started it will automatically reset all alarms.


Monitoring Serial Communications

In order for InfoSpy to provide Serial Communications monitoring the "Load Communications Trace Library" option must be set under the "Intellib" configuration screen.

This option allows you to trace all activity on a serial port or on all serial ports at once.  The activities include:

ReadComm - All data being read from the serial port(s).

WriteComm - All data being written to the serial port(s).

ReadComm,WriteComm - All data being read from and written to the serial port(s).

All activity - All data being read from and written to the serial port(s) as well as all status updates, flushing, opening and closing of the port(s).

Comm Error - You also can optionally show all GetCommError activity, however be warned that most communications programs overuse this function which may cause your trace to quickly fill to capacity.

Data Format - Select whether you wish to see communications activity formatted with a line count, the communications command, the time and the data or whether you just want the comm port data strings displayed.

Character Format - This options let you specify whether you want the comm port data displayed as ascii or hex characters.  Hex characters are displayed in hex pairs seperated by spaces: 0A B9 C3...

The final option to select is whether you want the comm activity to be logged to the screen, a disk file, or both.  Logging to a disk file only allows you to trace comm activity in the background without affecting your screen.  You can browse local and network drives for the log file which will be created automatically.
Each trace entry includes the Serial activity type, the Communications port, the time the activity took place and any data involved in the activity.

After selecting your Trace options a Dialog will appear telling you to start your Communications program before continuing.  We have found that in most cases due to the type of trace performed by InfoSpy, the Communications program needs to hook itself before InfoSpy can invoke its own hook.  See the section on Communications Trace Errors for more information.

When tracing is started InfoSpy will add a new menu option: "StopCommTrace".  You can use this menu option to stop an active trace in the visible trace window.  You can later restart the Trace in the same window by selecting the "Trace Serial Comm" menu option.  If you close the Trace window a subsequent trace will create a new window.

All activity data is divided into 80 characters per line to make it more readable.  Ascii characters are shown in ascii and non-readable characters are shown in Hex surrounded by square brackets.

Due to the fact that each communication command is written to InfoSpy's screen before being passed forward to Windows, you might notice a delay in your communications program while InfoSpy updates its screen.  To reduce the delays to a negligable level we suggest you minimize the Comm Trace window while tracing then maximize it when done.

Note: You should read the additional topic on Communications Trace Errors to help avoid GPFs!.Additional Topics:

Loading the Communications Trace Library
Communications Trace Errors


Communications Trace Errors

InfoSpy sets its hooks for tracing serial communications into USER.EXE at the exported locations for all 16 communications commands which causes them to be redirected to INFCMDLL.  When a serial communications command is issued to USER.EXE, InfoSpy intercepts it, puts it on our screen and then forwards it back to USER.EXE for normal processing.

The procedure is good, provides accurate tracing and is safe... However several things could happen:

1. When attempting to set its hooks into USER.EXE, InfoSpy may get outright rejection due to other applications having already set their hooks into these calls, specifically programs like EXTRA, PROCOMM, FAXPRO, etc.. essentially any program that fools with Serial communications under Windows potentially can get its hooks into USER.EXE. This may cause InfoSpy to get a GPF - NOT PRESENT FAULT when trying to trace serial communications

2. A communications program may get a GPF - KERNEL.EXE when trying to load if InfoSpy serial trace is active.  Once again the hooks are to blame.

What to do! If you need to trace the serial comm and have experienced problems loading InfoSpy comm trace then restart Windows without any applications, load InfoSpy and start the serial communications trace, then load your other applications normally.  InfoSpy WILL NOT hog the hook and will let other applications share it!


Stress Functions

InfoSpy has a library of functions that allow you to perform stress testing on other windows programs.

Grab Global Heap - Will grab as much of the Global heap as you specify.

Grab GDI Heap - Will grab as much of the GDI Heap as you specify. (used for graphics)

Grab USER Heap - Will grab as much of the USER Heap as you specify.

Grab File Handles - Windows has up to 255 file handles in its default table. InfoSpy can grab as many of them as you specify.  Note that this function will not grab alternate file handle tables.

Grab Disk Space - Will grab as much disk space as you specify (into an InfoSpy temporary file).

Grab Timers - Windows has over 30 timers.  This function will grab as many of them as you specify.

Grab Printer & Comm Ports - Will grab any of the printer (1-4) or Comm ports (1-4) available on your system.

Continuous Disk IO - Will start a procedure that will continuously read and write from the disk.


Configuring InfoSpy

InfoSpy has several configuration options; both for Startup and for standard operation:

Setting Option Preferences
Icon Setup
IntelliLib
Set Font for InfoSpy Windows
Set Font for Hex Dumps
Using the Button Bar
Using the Help Line


InfoSpy Option Preferences

The following options can be set on the Preferences dialog:

Starting InfoSpy as an Icon or in the last size & position it was in before it was closed.  If started as an Icon all Alarms and Schedules will still activate.

Password required to Maximize InfoSpy from Icon and to Close InfoSpy. See the section on InfoSpy Security Options.

Default Heap Ordering. Select Address, Size, Module, Handle or Type as the default Heap Sort order for Global Heap List operations.

Windows to load on Startup. Select none, any or all of the listed windows to load automatically when InfoSpy is started.

Seconds for Auto-Refresh. Enter the number of seconds between each Auto-Refresh operation.

Add Trace Entries to.. For any trace operations you can select whether the Trace list box receives new entries either at the top of the list (newest entry at top) or at the bottom of the list (newest entry at bottom).

When Trace Window is full.. In Windows 3.1 a list box may contain up to 64k of information. The tracing facilities of InfoSpy use List boxes and are therefore limited to showing 64k of trace information (approx. 1000 lines).  This option lets you indicate whether to stop the trace when the list box is full or whether to reuse the oldest trace entry.


Icon Setup

You can configure the InfoSpy icon to display in several different formats or not display at all.  The Icon should reflect the needs of the user since it will be viewed on the desktop most of the time.

From the Configure menu select the Icon Setup option.  Select one of the following Icon options then click on the Ok button.

InfoSpy Default Icon. This will display the standard InfoSpy icon.

System Resource Level. Displays a 3d box showing the percent of system resources available.

GDI Resource Level. Displays a 3d box showing the percent of GDI resources available.

USER Resource Level. Displays a 3d box showing the percent of USER resources available.

Bar Graph of Resources. Displays a 3d box showing 3 bars representing the SYSTEM, GDI and USER Resource percent available.  The Icon title also displays the actual percentages of each.

Icon will be Hidden. This will cause InfoSpy to Disappear when minimized.  For more information on how to benefit from this option see the section on Background Monitoring.


Set Font for InfoSpy Windows

Use the Font Selection window to select the font for all InfoSpy windows.

The Font you select will be saved to the INI file under the FONT heading and will be re-used on subsequent executions of InfoSpy.

Note: Certain fonts provide TAB operations while others use proportional spacing.


Set Font for Hex Dumps

Use the Font Selection window to select the font for all Hex Dump windows.

Note: Certain fonts provide TAB operations while others use proportional spacing.


Button Bar

InfoSpy has the ability to display an optional Button Bar containing your choice of over 20 different buttons representing most of InfoSpy's menu options.

To show or hide the button bar select the Show Button Bar menu option.  When the button bar is visible there will be a checkmark next to this menu option.

Use the Setup Button Bar option to select which menu options will be represented on the Button Bar.

When InfoSpy is first started (or upgraded) all of the Buttons will be displayed, which may cause several buttons to overrun the size of the InfoSpy window.  However the Button Bar will automatically redraw once you make selections from the Button Bar Setup.


Help Line

InfoSpy can optionally display a menu help line at the bottom of the InfoSpy main window.  The help line is used to provide real-time information on menu and button bar selections.  To get help on a menu or button bar selection simply click on the menu or button.  Text will appear in the help line until you release the mouse button.

To show or hide the help line select the Show Help Line menu option.  When the help line is visible there will be a checkmark next to this menu option.


Task Scheduler

The InfoSpy Task Scheduler is a full featured system scheduler that allows you to set up to 100 independant events to occur at a frequency you specify.

In addition, you have the option to schedule system events such as Compacting Global Memory.

In order to use the Task Scheduler you must first ensure that the Task Scheduler Library is loaded using the IntelliLib setup screen.

If the Library is loaded you will see the Scheduler menu item appear on the InfoSpy main menu.  Within this menu are 2 menu options:

1.Start or Stop Task Scheduler. This option lets you dynamically turn the scheduler on and off as desired.  When turned off no scheduled events will occur.

2.Edit the Task Scheduler. This option will display the main Scheduler window providing a list of all scheduled items, access to the Setup window and selections for adding, editing and deleting scheduled items.

Additional Topics:

Loading the Task Scheduler Library
Task Scheduler Setup
Automatically Compacting Global Memory
Adding a Schedule item
Deleting a Schedule item
Editing a Schedule item
How to View the Scheduler Log


Adding a Schedule Item

Setting the Task Event Time

The task event time is the hour and minute at which the event will trigger. The time is set using a 24 hour clock, ie: 2pm=1400 hours.

Either type the correct hour and minute into the appropriate fields or use the speed buttons to increase or decrease each field until the correct hour or minute appears.

Note that every scheduled item must have a unique time.  They can be within 1 minute of each other but no duplicate times are allowed.  This is due to the timing cycle that can only handle a single scheduled task per minute.

Setting the Type of Task

You can select from the following types of tasks:

1.Run a Program - This choice lets you select any DOS or Windows program or batch file and have it executed. The program name & path can not exceed 60 characters.  Use the Program Browser button to select a program.

2.Windows Shutdown - This choice will close all open applications and cause windows to shut down.

3.Windows Restart - This choice will close all open applications, shutdown Windows and then will immediately restart Windows.

4.System Warm Boot - This choice will close all open applications, shut down Windows and then will immediately perform a Warm Boot of your system.

5.System Cold Boot - This choice will close all open applications and will then immediately Cold Boot your system (no Windows shutdown).

6.Task Shutdown - This choice allows you to specify a Windows Application (via its Task Name) to shut down.  You can use the drop down list to select a task from your system's current task list.

Setting the Frequency

You can select from the following frequencies:

1.Today Only - Perform the scheduled activity today only.

2.Every Day - Perform the scheduled activity every day of the week.

3.Specified Days - Select the days on which the scheduled activity should take place.

4.Specific Date - Enter the date on which the activity will take place.

Setting the Options

The following options are available for scheduled items:

1.Use Rapid Shutdown - This option forces applications to close rapidly instead of performing a normal shutdown.  It is possible that using this option with some types of applications will cause them to not save their data!

Note: Rapid Shutdown is required if you have DOS Sessions which need to be closed or if you want to bypass an application's shutdown dialog.

2.Delete Item - If the scheduled item is a one-time shot you can select this option to cause it to be deleted from the Schedule automatically once it has successfully occured.

3.Provide 10 Second Countdown - Selecting this option provides the user with a countdown dialog on the screen prior to the event occuring. The dialog shows the event that will occur and provides a Cancel button to allow the user to abort the scheduled activity.

4.Change Working Directory - This option is only used when scheduling the execution of a program.  Prior to the program being executed InfoSpy will examine the program name for it's path and will change the System's working directory to that path.  Many programs require that they be executed from a specific working directory since they load configuration or INI files.


Deleting a Schedule Item

To delete an item already on the schedule:

1. Select the item from the list box.
2. Press the Delete Item button in the dialog.
3. Confirm the deletion.

After an item is deleted the list is refreshed and automatically written to disk.


Editing a Schedule Item

To edit an item already on the schedule you can either:

1. Double click on the item in the list box.

2. Select the item from the list box and press the Edit Item button.

In both cases the schedule detail window will load with the details of the selected item loaded into the correct fields.


Task Scheduler Setup

Using the Setup menu option found on the Scheduler menu, you can set the following options:

1. The name & path of the Scheduler file containing the task scheduling information.  This feature allows you to maintain more than 1 scheduler file.  Use the Browse button to browse your disk.

2. Log Scheduler activity.  Set this checkbox if you want all scheduler activity to be logged.

3. The name & path of the Scheduler log file.

4. Compact Global Memory Automatically.  Set this checkbox if you want InfoSpy to automatically Compact Global Memory.

5. Compact every x Minutes. Enter the number of minutes between each automatic Global Memory Compact. Maximum 59 minutes.


Automatically Compacting Global Memory

Compacting Global Memory ensures that all unused memory blocks are freed up for reuse and that all free Global Memory is contiguous.

Having InfoSpy automatically compact Global Memory will eliminate the need for you to manually Compact Global Memory.

While InfoSpy is compacting Global Memory it will attempt to change the cursor to the WAIT cursor, however some applications may not allow this to occur. In any case, depending on the level of compacting that is required, there may be a slight delay until it is complete.


How to View the Scheduler Log

The task scheduler log can be viewed using any text editor or word processor as it is in 80 character line delimited format.

Each log line contains the following information:
- Date & Time.
- The Task that was performed.
- Whether is was Successful or Failed.

If you delete the log InfoSpy will automatically create a new one when the next log entry is to be written.


Memory Information

InfoSpy provides detailed memory information:

- Largest free block of memory (in bytes).
- Maximum memory pages available.
- Maximum memory pages lockable.
- Total linear space.
- Total unlocked pages of memory.
- Free pages.
- Total pages.
- Free linear space.
- Swap file pages.
- Page size (in bytes).


Heap Information

Under Windows the Heap is used to maintain data related to almost every facet of applications, modules, graphics, etc.. Examining the Heap provides you with the ability to actually spy on the data an application may be maintaining in the Heap.

Global Heap
Global Heap for a Selected Module
Heap Information
GDI Local Heap
USER Local Heap
Sort Options


Global Heap

When you choose this option, InfoSpy will walk the heap to provide a detailed list of all Heap Entries used under Windows.  You can have this list sorted by Handle, Address, Size, Type or Module.  Building the list can take several seconds, if you choose to Cancel the process using the provided Cancel button then you will be provided with a partial list.

You have the option of building the list for a selected Module, for the GDI local Heap or for the USER local heap, see the Related Subjects choices for more information.

The displayed window contains all valid Local Memory Descriptors for the Global Heap within your Windows environment.  Each program, DLL, task or module that is loaded allocates certain memory areas for its own internal use, such as tables, lists and pointers.

The Items on each line of the list box are:

- System Address for this memory.
- Handle to this global heap memory descriptor.
- Accessed flag.
- Loaded flag.
- Local Heap available flag.
- Size of the allocated memory in bytes.
- Type of Memory descriptor.
- Owner module name and Handle.

In order to further examine each descriptor double click on it.  This will create a memory examination window which will show the contents of those particular memory segments in a Hex/Ascii dump.

Related Subjects:
Hex Contents of a Heap Entry
Local Heap Walk
Cancelling a Heap Examination


Memory Dump
Hex Contents of a Heap Entry

This option is used to view Global Heap entries.  To invoke a memory dump double click on any Heap entry.  A new window will appear showing the Heap values in the following format:

000A 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................

- the offset
- 16 byte hex values
- 16 byte ascii values.  All non-terminal characters are replaced with a '.'.

Each memory dump can be retained, minimized or viewed with other memory dumps.  Since the memory dump window is dependant on InfoSpy, when you close InfoSpy the dump will automatically close.  InfoSpy can maintain multiple windows containing Hex dumps so that they may be saved for future viewing or comparison.

You can Print and Save Hex dumps by invoking the Print and Save options located on the System Menu (upper left corner) of each Hex Dump window.


Cancelling a Heap Examination

While InfoSpy is examining the Heap and building the requested list of Heap entries it displays a status box with a cancel button.  The Heap examination process can take several seconds depending on the scope of the examination, ie: examining the Heap for a single module will take far less time than building an application summary.

If you get tired of waiting for the results of a Heap Examination, select the Cancel button on the Status window.  This will terminate the Heap Examination and will provide you with the results so far.


Local Heap Walk

Certain Global Heap descriptors have Local Heap relationships.  If so, a Global Heap entry will be marked with an 'L' in the 'Loc' column of the Global Heap Walker.

To walk the Local Heap, select the Global Heap entry and then select the 'Local Heap' menu option on the InfoSpy menu.  If the Global Heap entry does not have any Local Heap a message will appear to notify you.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Global Heap for a Selected Module

Using this option you can selectively list the Heap entries for any loaded module.  Using the Module selection list box that appears, select the module for which you want Heap information.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Heap Information

The Heap Information screen provides you with a summary of Heap usage and availability:

The percentage of the USER and GDI heap allocation still free.

The Segment handles to the USER and GDI DGroups.

Heap availability, free space and items allocated on the heap.

Use the Close button to close the Heap Information screen.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


GDI Local Heap

This option selects the local GDI heap entries from the heap and presents them in a Window.  These entries include Bitmaps, Device contexts, Fonts and Regions.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


USER Local Heap

This option selects the local USER heap entries from the heap and presents them in a Window.  These entries include Bitmaps, Device contexts, Fonts and Regions.

Related Subjects:
Hex Contents of a Heap Entry
Cancelling a Heap Examination


Sort Options

In order to assist you in evaluating your system's Heap, InfoSpy has the ability to sort the Heap in various ways:

Sort by Address
Sort by Handle
Sort by Size
Sort by Type
Sort by Module

When you modify the sort option InfoSpy will refresh any Heap windows using the new sort option.  In addition, a check mark will be placed by the new sort option and all subsequent Heap dumps will use this sort option.

When InfoSpy is loaded it will use the Default Sort Option which is set using the InfoSpy Preferences screen under the Configure menu.


Window Positioning
Window Positioning and Activation

Using the Tile, Cascade and Arrange Icons options.
Choosing from the List of InfoSpy Windows.


Tiling, Cascading and Icons
Using Tile, Cascade and Arrange Icons

The Tile menu option will cause all active InfoSpy windows to equally divide up the InfoSpy window space vertically and horizontally between them.

The Cascade menu option will caues all active InfoSpy windows to cascade down from the upper left corner of the InfoSpy main window.

The Arrange Icons menu option will take all InfoSpy windows that are iconized and will arrange them at the bottom of the InfoSpy main window.


Choosing from the List of InfoSpy Windows

Each screen displayed in InfoSpy is considered to be a window.  The Windows menu option of InfoSpy contains a list of all InfoSpy windows that are currently displayed or iconized.

By selecting one of the windows you will maximize it and make it the active window.


Help on InfoSpy

Viewing the About InfoSpy screen.
Viewing the Contents of InfoSpy Help.


About InfoSpy

The About option will display the InfoSpy version screen.  Select the Ok button to close the screen.


Contents of InfoSpy Help

InfoSpy online help contains subject matter related directly to the operation of InfoSpy.  The InfoSpy.Hlp file should be kept with the InfoSpy.Exe module or in the Windows default directory.

The Contents option will load InfoSpy.Hlp with the Table of Contents initially visible.


Windows 95 && Os/2 Compatability

InfoSpy has been upgraded (still a 16bit app though) to handle changes in Windows 95. All InfoSpy functions operate and report correctly with only a few exceptions that we are working on:

1. The Open File Handle list does not show the file name of the open file.
2. The Stack Usage Monitor does not report the correct amount of memory allocated to each tasks stack.
3. The Mini File Manager can not handle 255 char file names.
InfoSpy will run in a Win-Os/2 window.  Most InfoSpy functions are available under Os/2, those that are not compatable are disabled from use.

If InfoSpy detects that it is running either under Windows 95 or Win-os2 then it will change its title bar to show the operating system name && version.


InfoSpy File Manager Usage

InfoSpy contains a fully functional File Manager which can be invoked at any time from within InfoSpy.  The advantages of using our File Manager over the Windows File Manager are:
- Loads immediately.
- Uses no additional resources or memory.
- Easy to use split directory dialog.

To invoke the InfoSpy File Manager please select the File Manager option from the Action menu.

Additional Topics:

Setting File Manager Configuration
Formatting Diskettes
Cloning Diskettes
Set Volume Label
Copying, Moving, Renaming, Deleting Files
Directory Functions
File, Word & Char Search


Setting File Manager Configuration

There are several options that can be used to customize the File Manager. Select the Setup option under the File menu to modify the options.

Confirm Overwrite of an existing file when copying or moving files.

Confirm Deletion of a file in all cases.

Prompt for Each Drive during searches. Before searching a drive you will be asked whether the drive should be skipped.

Show File Attributes on the file lists. Will indicate if files are Read Only, Hidden or System.

Show Hidden and System Files on the file lists.  Will allow you to see and modify files that are normally out of view.

Default File Viewer will be used to display files from the file lists. Defaults to WRITE.EXE.

Enter Drive to Exclude from searches and File Manager availability. We found that CD Rom drives and tape backups would cause Windows Errors when scanning a list of drives, therefore by setting this option to the drive letter of such devices they will be excluded from the File Manager altogether.

Note: This option to exclude a drive will also cause the InfoSpy DLL Search to bypass this drive.


Set Volume Label

Use this option to set or clear the volume label on any type of diskette.

From the File Manager Disk menu select the Set Volume Label option.  Enter the new volume label and press the Set Volume Label button.

To see the current label press the Read Label button.

To clear the current label press the Clear Label button.


File, Word & Char Search

The InfoSpy File Manager has a powerful search utility that can be used to:

- Find files based on File Names or Extensions or parts thereof.
- Find files containing words or characters that you specify.

To Invoke the File Search select the Find a File option on the Search menu.

To Invoke the Word & Character Search select the Find Words or Chars option on the Search menu.


Cloning Diskettes

InfoSpy has the ability to clone diskettes. Cloning provides you with an exact duplicate of another diskette in a single pass, eliminating the need to insert and remove diskettes several times like most diskcopy programs require.  In addition, cloning will copy the boot sector, FAT table, Volume ID and Serial number from the Source to Target diskettes.

From the Clone dialog select the following options:

Drive - select either Drive A or B or another removeable drive.

Size - choose the correct size of the diskette in the drive.

Start the Cloning process by pressing the Clone from Disk button. You will be prompted to insert the Source diskette in the drive and press the Ok button.

Once the Source diskette has been copied you will be prompted to insert the Target diskette in the Drive and press the Ok button.  If you press the Cancel button at this point you will be returned to the Clone dialog where you can save the Source image to disk.

Once the Target diskette has been written you will be asked if you want to clone another diskette.


Formatting Diskettes

The InfoSpy File Manager can format all standard diskettes of sizes 360k, 1.2mb, 720k and 1.44mb. We do not support the higher density and non-standard format sizes.

To invoke the diskette formatter select the Format Diskette option from the Options menu.

1. Select the drive containing the diskette.

2. Select the size of diskette.

3. Select the Format Type. Normal Format will initialize each sector. Fast Format clears the FAT and BOOT SECTOR only and takes only a few seconds to complete.

4. Enter a volume label (optional - up to 11 characters).

5. Indicate whether you want the diskette verified as it is formatted (increases format time).

6. Click on the Ok button or press Enter.  The format process will start, progress will be shown in a Cancel dialog which can be used to cancel the process at any time, however cancelling a format will ensure that the diskette will be unusable!.

If the format is successful you will be shown a dialog indicating the amount of space available on the diskette.


Copying, Moving, Renaming, Deleting Files

In order to perform operations on files such as copying, moving, renaming or deleting, you must first select files from either the Upper or Lower file list.  Once files are selected you can simply make the menu selection from the File menu to start the operation.  If no files are selected an error message will appear.

Copying Files. This operation will copy the selected files to the destination directory or drive that you specify. After selecting the Copy option from the menu, a dialog will appear asking you for the target of the copy.

Moving Files. This operation will move the selected files to the destination directory or drive that you specify. After selecting the Move option from the menu, a dialog will appear asking you for the target of the move.

Renaming Files. This operation will rename the selected file to a new name. If you use this operation on more than 1 file errors will occur.

Deleting Files. This operation will delete the selected files.


Directory Functions

The following Directory related functions are available under the Directory menu option:

Change to Directory.

This options will prompt you for the path of the directory you wish to change to. Though you can use the Directory List boxes to change to most directories, in some cases Hidden or System directories do not appear on the list.  This function lets you address those directories.

Create Directory.

Will create a directory or sub-directory according to the path and name you specify.

Remove Directory.

Will remove the directory you have selected in either directory list box. Note that if the directory contains files you will not be able to remove the directory.


InfoSpy Security
InfoSpy Security Options

InfoSpy provides several layers of security that can be used to protect both the terminals as well as users of InfoSpy.

Terminal Security.

Invoking the Lock Terminal function from the Action menu will cause the InfoSpy Password dialog to appear.  Your terminal is effectively locked until the correct password is given. All Window task switching key combinations such as ALT-TAB and CTRL-ESC are disabled.  The user may still use CTRL-ALT-DEL to reboot the system.

Maximizing InfoSpy Icon.

If this option is specified in the InfoSpy configuration dialog, it will cause the InfoSpy Password dialog to appear each time an attempt is made to use InfoSpy while it is an Icon.

This feature is ideal for users of InfoSpy who are using Alarms or Scheduler but should not be allowed to use InfoSpy features.

Closing InfoSpy.
If this option is specified in the Sytem Sentry setup dialog, it will cause the InfoSpy Password dialog to appear each time an attempt is made to close InfoSpy.

This feature can be a benefit it preventing users from disabling InfoSpy's Alarms or Scheduler.

Note: When InfoSpy is first installed the password defaults to InfoSpy which should be changed immediately.

Please send us an EMAIL if a password is forgotten and we will explain how to reinitialize the password.


System Sentry

The System Sentry feature of InfoSpy is a powerful means of controlling access to the Windows environment and Windows programs while also providing powerful tools for logging Windows program usage.

To utilize the features of the System Sentry you must invoke the System Sentry Library using the IntelliLib Setup window found under the Preferences menu. When the Library is invoked there will be a Sentry option on the main InfoSpy menu.

Additional Topics:

System Sentry Setup
Monitoring Application Usage.
Program Access.


System Sentry Setup

The following options can be set using the System Sentry Setup window:

Disable CTRL-ALT-DEL. Select this checkbox to disable the CTRL-ALT-DEL system reboot under Windows.

Require Password to Modify Sentry Configuration.  Select this checkbox then use the Password button to enter a password. This option causes InfoSpy to request a password prior to any changes to the System Sentry information.

Require Password to Close InfoSpy. Select this checkbox then use the Password button to enter a password. This option causes InfoSpy to request a password prior to closing the program.

Require Password to Maximize from Icon.  Select this checkbox then use the Password button to enter a password.  This option causes InfoSpy to request a password prior to it being maximized from an Icon.

Require Password to Exit Windows.  Select this checkbox then use the Password button to enter a password.  This option causes InfoSpy to request a password prior to allowing Windows to shutdown. This option works with any program that has the ability to shut down Windows.

User may not Exit Windows.  Select this checkbox to prevent the user of the system from shutting down Windows.

Windows Exit not Monitored.  This is the default option. No monitoring of Windows Shutdown is performed.

Access File.  Enter the path and file name of the Program Access file or use the Browse button to select a file.

Access Log.  Enter the path and file name of the Program Access Log File or use the Browse button to select a file.


Monitoring Application Usage

This function provides you with a means of tracing which Windows applications have been used and for how long.

From the System Sentry menu select the Application Usage Monitor option.

Once invoked, a new line will appear each time the Focus shifts to a different Windows application. Each line states the Date, Time and Application that was invoked.

Note: We are unable to trace specific DOS applications, however a line with WINOLDAP will indicate that a DOS program or DOS shell was active.


Program Access

Using this feature of InfoSpy you can control access to Windows programs or you can report on access to Windows programs.  In addition, you can control access to Windows programs in entire directories as well as displaying messages to users when they access Windows programs to which you have restricted access.

This feature adds 2 menu options to the System Sentry menu:

Turn Program Access On,Off.  This menu option toggles the Program Access feature to be enabled or disabled while InfoSpy is running. Since the option is written to the configuration file it will remain as set for future InfoSpy sessions.  Immediately upon turning Program Access On InfoSpy will read the Program Access file and load the list of programs to be monitored for access and will immediately act on access violations.

Program Access Setup. This menu option provides you with a window to list, add, delete and edit the programs and directories for which you are monitoring access. For more information on how to use this window, see the topic on Monitoring Access to Windows Programs.

In addition, the System Sentry Setup window has options for setting the path & file name for the Program Access file and log. See the section on System Sentry Setup for more information.

Note: Though the Program Access feature of InfoSpy is powerful, it does have its limitations.

Currently, in order to monitor access, the program being accessed actually needs to load onto the Windows environment before InfoSpy can trap it and act on the access. Though some of our beta testers have reported that ideally the program should not even load, the general consensus was that having the program load caused no additional problems.  Another limitation is the fact that if you chose to have InfoSpy kill the program when it is accessed, the program may leave resources hanging. This is strictly a function of the Windows terminate program function and can not be controlled by InfoSpy.


Monitoring Access to Windows Programs

The main Program Access window consists of a listbox showing all programs and directories being monitored as well as buttons for adding, deleting and editing the list.  The list is sorted alphabetically and not by entry date\time.

Each line in the list will provide you with information regarding the access action, the type of access as well as the name of the programbeing monitored:

Mess-NoMess. Mess indicates an access violation message will be displayed, NoMess = No Message.

Kill-NoKill. Kill indicates that InfoSpy will attempt to terminate the program being accessed. NoKill = Program not terminated.

Log-NoLog. Log indicates that InfoSpy will log the access violation to the Program Access log. NoLog = Access not logged.

Task-Program-Directory. Task indicates that a specific Task Name will be monitored. Program indicates that the pathentered will be watched for. Directory indicates that any program executed within that directory will be monitored.

To add a new access item click on the Add button.

To delete an item from the list click on the Delete button.

To edit an item on the list click on the Edit button or double click on the item in the list.

To save your changes click on the Ok button.  To Cancel without saving your changes press the Cancel button.


Adding an access item

When adding an item to the access list you will be shown the Access Detail window with no options selected.  From this window you can select the task, program or directory to be monitored for access. Note that you can monitor access to Network programs however InfoSpy will not report on network unavailability.

Select from the following options:

Limit Access by Task Name. Select this option if you want InfoSpy to look at the internal task name of the program being accessed as apposed to the Dos Filename.

The advantage to looking for the Task Name is that when a person renames a DOS file it does not change the internal Task Name that Windows sees when the program is loaded.  For Example: C:\WINDOWS\SOLITAIR.EXE has a task name of SOLITAIR. Renaming the file to C:\WINDOWS\SOL.EXE will keep the task name SOLITAIR.

You can use the drop down list box button to get a list of all task names currently loaded on your system, thus if you are unsure of an internal taskname, load the program then select the taskname from the drop down list.

Limit Access to a Specific Program. Use the Browse button to select a file or enter it in the edit field.

Limit Access to all Programs in a Directory.  Use the Browse button to select a directory or enter it in the edit field.

Display Access Violation Message.  When the program is executed a message will appear stating that access is not allowed.

Terminate Program.  The program being accessed will be terminated. Note that terminating certain programs may leave resources\memory allocated. It is recommended that Windows be restarted after termination of several programs.

Log Access Violation.  This option will write a line to the System Sentry Log file with the date, time and name.

Once you have made your selections click on the Ok button. This will close the detail window and will show your new item on the list of access items.


Deleting an access item

Deleting an access item immediately removes it from the access list. All remaining access items are unaffected by the deletion.  The deletion does not take affect until the Ok button is clicked.


Editing an access item

Editing an access item loads the current setting for the item onto the Access Detail window. You can then modify all or none of the options. When you click on Ok on the Access Detail window your changes will be reflected on the Access Item List however they will not take affect until the Ok button is clicked.


Problems, Errors and GPFs!
Windows NT, OS2, Problems, Errors and GPFs!

This is where we humble ourselves just a little bit....

We have tested InfoSpy running under Windows NT.  InfoSpy provided near complete information, however there were isolated problems with Windows Classes, Application Summary, Memory Information and Heap Information.  We would appreciate exact feedback of problems you encounter, send us a CompuServe message.

Though InfoSpy was written to provide Information on Windows, assist in debugging programs and monitor your overall system, we have found that at times InfoSpy can prove to cause some problems.... So rather than have you all calling us and blaming us for the demise of your environment, we thought we would lay our cards on the table and hopefully enlist you to help us solve some problems.

As of this release the following problems exist with InfoSpy:

1. The Windows Trace DLL may cause the InfoSpy menu to have extra scroll controls and menu options that are in incorrect places.  This is due to the inadvertant interception of Windows messages while tracing them.

2. If you kill InfoSpy without letting it do a normal shutdown all the hooks into the Windows environment will remain so most likely other Win apps will get GPFs, so if you kill InfoSpy, reboot immediately!

3. The Network DLL is still not quite up to standards. There are still missing Netware calls and no Lantastic support whatsoever.

4. The Heap Spy and Application Summary take too long to scan the Heap and build a sorted list of entries.

5. If you are tracing messages for ALL windows and try certain operations with InfoSpy you may get a GPF.  We have attempted to isolate the InfoSpy calls however a few still remain which cause integrity problems. This is rare.

6. "Not Present Fault" - When trying to invoke the Communications trace you may get this GPF.  InfoSpy was unable to set its hooks into USER.EXE due to other programs already making claim to those hook points. See section on Communications Trace Errors.

7. If you get the message "Application Error - Undefined Dynalink" you are hitting an infamous network bug that we are trying to work out.  Turn off the Network IntelliLib DLL in the INFORMER.INI and load InfoSpy again.

8. Black Screen of Death... Need we say more. Several users with Netware terminals have described this situation to us.

Enjoy the program and give us feedback!


Version History

v2.30 - 04/21/95
- Created new Library: SYSTEM SENTRY to centralize all security type functions. Moved the Maximize and Close password checks into it and created a Setup screen to set security options.
- Moved Application Usage Monitor to new SYSTEM SENTRY library.
- Added System Sentry INI file logic to allow Sentry settings to be stored in a different file than normal InfoSpy settings.
- Updated Monitoring to disk to handle file create error.
- Updated Application Usage Monitor to be able to log to a disk file as well as indicate start & stop usage times for the application.
- Added ability to redirect the System Sentry INI file via the command line using the :ffffffff.xxx format.
- Updated Setup program to include System Sentry DLL and prompt for System Sentry INI file location.
- The LOCK TERMINAL function was updated to handle the ALT F4 keystroke which used to cause it to unlock without a password.
- Corrected GPF when OPEN FILES windows tried to open without the DOS DLL Loaded.
- Corrected bug that caused the auto loading windows to be filled with dead spaces.
- Added function to SYSTEM SENTRY to prevent users from exiting Windows or requires a password to exit Windows.
- New option under PREFERENCES lets you specify whether new InfoSpy child windows will be added in TILE or CASCADE form to the InfoSpy MDI Frame.
- New function under SYSTEM SENTRY to control access to windows programs or directories. Menu options added are: TURN PROGRAM ACCESS ON,OFF and PROGRAM ACCESS SETUP. Added access file and log file entries to the System Sentry Setup window.
- Added option on Comm Trace Setup window to show characters in ascii or hex mode.
- Reorganized Scheduler List window.
- Added HELP buttons to Alarm, Scheduler, Comm Trace, Message Trace, Preferences, Resource Monitor, Icon Search, DLL Search && File Manager main windows to access help for those features directly.
- Moved the Comm Trace Setup Window to INFCMDLL library.
- Corrected bug that if you unloaded Scheduler DLL we would still attempt to Compact Global Memory causing a GPF.
- Added option on Comm Trace Setup window to show only the Communications data strings without the comm command, counter or time. Makes it easier to debug comm data errors.
- Added code to Comm Trace to initialize the comm port thereby setting the USER.EXE hook area. This will help with GPFs caused by the Comm Hook being placed incorrectly.
- Added 1st pass support for Windows95 including OS recognition and tuning a few functions, however InfoSpy is still a 16bit Application. All InfoSpy options operate under Win95, however there are a few items to explain: 1. Open File Handle list doesn't show file name. 2. Stack usage is not returning valid numbers for stack memory.  3. Mini File Manager can not support 255 char file names.
- Added function on SYSTEM menu to retrieve the System Parameter Block. This block has various values used by windows.
- Corrected InfoSpy title bar to display OS and registration info even after iconized or minimized operations.
- Registration splash screen updated to not leave rabbit droppings on InfoSpy MDI Frame and it will appear also when InfoSpy is being exited.
- Modified registration info to support visa/mc registration and price increase to $19.99 (sorry, it had to happen...).
- Added CTRL-ALT-DEL disabling to the System Sentry setup screen.  This allows you to disable and re-enable the CTRL-ALT-DEL keys under ALL windows applications to prevent the system from being booted or individual programs from being terminated using CTRL-ALT-DEL.
- Removed APPLICATION SUMMARY button from button bar when HEAP dll is not loaded, was causing GPFs.
- Updated startup logic to correctly paint the MDI frame when using default icon and set the correct default icon text.

v2.20 - 03/22/95
- Added new APPLICATION USAGE MONITOR. This function lets you track the user's application usage showing start date, time & application name.
- Corrected several small errors (sp.) on ToolBar and Menu.
- Added new ICON SETUP feature. You can now customize your InfoSpy icon to either: a) display the icon. b) Show System Resource %. c) Show GDI Resource %. d) Show USER Resource %. e) Show a Bar graph of SYSTEM, GDI & USER Resource %. f) Be Hidden from view.  Thanks to all the users who explained what they needed!
- Added logic to SHOW the hidden InfoSpy icon (see online help).
- Updated Keyboard Monitor to handle BKSPC and ENTER.
- Moved the SCHEDULER SETUP dialog from the Scheduler list dialog to the Scheduler Menu.
- Added Automatic COMPACT GLOBAL MEMORY event to the TASK SCHEDULER.  This function allows you to have your system automatically Compact Global Memory every x minutes.

v2.17 - 03/14/95
- Corrected bug that caused GPF 1F:02E2 when doing APPLICATION SUMMARY on some applications.
- Added DDEML, OLECLI & OLE2 to the System Module list for application summary.
- Added capability to monitor COMM PORT MONITOR activity on the screen or to a disk file (or both). Lets you log comm activity without changing your screen.
- Optimized all MESSAGEBOX API calls to a common ERRORTEXT routine, saved a couple of Kb.
- Modified Screen capture to hide the InfoSpy Icon before capturing desktop images. If InfoSpy is a normal window then it is not hidden.
- Added capability to save WINDOWS MESSAGE MONITOR activity to the screen or to a disk file.
- Created Generic Task Selection Dialog which is used to select a task for: Application Summary, Terminate Task, Trace Task Messages and Task Stack Dump. This is a lot simpler than opening a Task List then going to the menu.
- Created Generic Module Selection Dialog which is used to select a module for: Unload Module and Module Heap List. Once again.. simplicity!
- Added capability to FILE TRACE facility so that it can put the trace output either to the screen or to a disk file.
- Updated FILE TRACE facility to give user options to trace either DOS or WINDOWS file activity and also to select the particular file activity(s) to watch for (Delete, Rename, Create..).
- Added COMPACT GLOBAL MEMORY function to the ACTION menu. Everyone has been asking for it but after Brian Livingston's InfoWorld article we decided we should finally get it done!
- Added new KEYBOARD WATCHER function under the MONITOR menu. This is our first pass at trapping all keyboard activity so it is still rough (a few extra chars) but essentially gives a formatted view of whatever is typed on any Windows applications.

v2.16 - 02/19/95
- Corrected RTE204 1:0545 error in DLL Search.
- Corrected error in Message hook that UnSet the wrong message hook.
- Corrected RTE201 error in File Manager IMAGE SAVE.
- Print DLL bugs fixed that 1) caused print when you clicked in bottom list box. 2) got into a print loop then crashed. 3) Repeated print of 'List of Files that reference DLLs'.
- Corrected bug that caused InfoSpy to crash leaving File Handles held, user would have to exit Windows.
- Added INFOBMP.EXE small 35k bitmap viewer which is invoked from screen capture.

v2.15 - 02/15/95
- New Windows Screen Capture functions. 3 functions to copy your desktop image to the clipboard. You can copy either the entire screen, a specific window or just a specific area of the screen (using rubber band cut) to the Windows clipboard.
- Enhanced the System Menu to include the Terminal Lock, Screen capture and Windows Shutdown options.
- Added a Popup menu activated by the Right Mouse Button which has the Terminal Lock, Screen capture, Windows Shutdown and InfoSpy help options.
- Updated Disk Scan to have a "GOTO TRACK" as well as "NEXT & PREV TRACK" functions. In addition, a Search function was added that will search for strings on the disk.
- Modifications to Scheduler: 1) Added Inactivity Sensor that will perform a task after x minutes of inactivity after a specified time. 2) Added Exit Win - Execute a program - Restart Win option. 3) added Execute parameters field. 4) Reduced # of scheduled items to 75 due to memory constraints.
- Moved all Heap Examination menu functions to a new DLL -> INFHPDLL. This DLL was added to the IntelliLib list to allow Heap Examination to be selectively loaded or not.
- Moved APPLICATION SUMMARY to the INFHPDLL, also added a task selection box to the application summary screen so you don't have to have a Task List active!
- Added button to IntelliLib screen that displays a list of menu options affected by each library.
- Modified SETUP program to allow customization of Library and INI file path information.
- ON TOP feature now lets you select the window to put on top by using a crosshair cursor which you position over the window you want on top.
- Corrected bug in DLL search that would get a RTE201 when it tried to read a file that was used by another program.
- Updated DISK CLONE routine to allow images to be loaded from image directory by double clicking on them in the list box. Also corrected bug that would cause program to crash when you cloned multiple disks.
- Updated WORD SEARCH in file manager to use a larger search buffer, increased search speed 2x.

v2.14 - 01/25/95
- Added SET VOLUME LABEL option to the DISK menu of the File Manager. Lets you Set or Clear Volume Label without formatting.
- Added option to ICON SEARCH to save the selected Icon from the list as a Windows Bitmap File which can be transported or loaded into other programs.
- Enhanced FILE, WORD & CHAR SEARCH functions of file manager to have File Date and File Size criteria. Can now be used to search for files that were modified on a certain day.
- Double Clicking on a selection in the FILE, WORD & CHAR SEARCH list or pressing the SET DIRECTORY button will change the directory of the FILE MANAGER source list to that of the selected file.
- The FILE, WORD & CHAR search list remains active between File Search sessions. In other words, you can go back to the list multiple times.
- Added DISK SCAN function to the File Manager. This function performs a sector read of any removeable disk and displays the data in Hex. You can print the contents of any sector.

v2.13 - 01/18/95
- Added logic to prevent multiple copies of InfoSpy from being run, gives message to user if a copy is already loaded.
- Increased IntelliLib capabilities to search for hanging copies of InfoSpy DLLs, and if it finds any it will unload them prior to loading new copies.
- Added Startup status screen indicating what is being loaded, this will help in determining whether InfoSpy is hanging on certain systems... and where!
- Changed File Manager library to load the INFVUGBL.DLL for status and progress boxes rather than having its own code.
- Added warning dialog to the Comm trace asking the user to start their Comm program before tracing.
- Updated DLL links for the INFNWDLL to help eliminate UNDEFINED DYNALINK errors.

v2.12 - 01/15/95
- Added ICON search library - INFICDLL.DLL. Provides functionality to search files, directories and drives for files containing Icons and then displays them in a list box. Can copy icons to clipboard.
- Moved DLL search function to the Icon search library - INFICDLL.DLL.
- Added Disk Cloning to the File Manager function. This lets you copy entire diskettes in a single pass and the copy them back to several target diskettes without re-reading the Source Diskette. Can also maintain Source Diskette images on disk for future retrieval.
- Status Line now has a running clock with seconds. (many users requested it). This replaces the clock that would show in the Title bar of monitoring windows.
- Button Bar now uses BALLOON HELP (cutting edge!!). Each time your mouse passes over a button a little balloon appears with help regarding the button. It may add 10k to the code but it sure looks good!
- the Default File Viewer field on the min File Manager setup dialog now scrolls horizontally and holds up to 60 chars.

v2.11 - 01/01/95
- Standarized all dialogs to use HELV 8pt Font.
- Added new option to configuration to allow InfoSpy to be started as an Icon.
- Corrected DOS Memory Alarm that was triggering too early, may still trigger early depending on DOS memory reserve.
- Added new options to configuration to use password to either maximize InfoSpy from an Icon or Close InfoSpy. Includes Password entry screen and password encryption method.
- New option on ACTION menu to LOCK TERMINAL. This will show the InfoSpy password dialog and will prevent all work on the terminal until the password is entered.
- Added our mini-File Manager to the ACTION menu and the INTELLILIB choices. This file manager has most functionality of the Windows File Manager but is compact and easy to use.
- Corrected the FILE - EXIT menu option so it would work when there were no open InfoSpy windows.
- Added option to DLL Search to let you search multiple drives in one search pass. Has option to prompt for each drive.
- Updated Status Line text for menu & button bar items, updated a few button bar images.
- Upgraded ALARMS so that they will automatically Reset themselves if the alarm level goes back above the setting you specified, allows Alarms to go off and reset without user intervension.
- Changed NETWORK and FILE MANAGER DLL libraries to load above the 1 meg mark, freed an additional 25k of DOS memory!

v2.10 - 12/15/94
 - Stress Menu was corrected so that it does not grey when disabled, instead it is actually removed from the menu bar.
 - Added System Scheduler, including: Intellilib Option, Popup Menu, Start & Stop menu functions and full task scheduling capability.
 - Fixed Continuous Disk I/O Stress problem which allowed it to only run once.
 - Fixed Grab DOS Memory Stress problem which occasionally gave RTE 201.
 - Corrected Grab USER Resources bug that displayed confirmation message twice.
 - Made Auto-Refresh counter seperate from Schedule & Alarm timers to prevent tie ups.
 - The MDI list of open windows now shows up under the FILE menu instead of WINDOW.  We had to move it since our menus are dynamic and the MDI interface is not flexible.
 - Will not allow APPLICATION SUMMARY and STACK TRACE for InfoSpy, caused some GPFs.
 - Updated Alarms function so that it will activate automatically when InfoSpy is loaded.
 - New Alarms menu function lets you Start & Stop the alarms dynamically.

v2.08 - 11/30/94
 - Address change for Dean Software Design.
 - Remove references to InfView which was sold to NEOSOFT.
 - Fixed Mem Usage by Task bug that would not reset the memory usage counters before next usage.
 - Added new function to Search your system for DLLs, also inspects All EXE,DLL,VBX & DRV files for any DLLs they might reference and then reports on DLLs that are referenced and unreferenced as well as duplicate DLL files.
 - Added 3 second splash screen only on unregistered version and added <unregistered> to top of InfoSpy main window.

v2.07 - 11/03/94
 - New function under ACTION to let you put any running task ON TOP of all other tasks. Select task from task list, can be used multiple times to put multiple tasks on top.
 - Added 'View CMOS' to the SYSTEM menu. Dumps $63 bytes of CMOS. (in INFDSDLL.DLL).
 - Added 'Save CMOS' and 'Restore CMOS' options to the ACTION menu. These options let you save your CMOS settings to a file or restore them from a file. (in INFDSDLL.DLL).
 - Created standalone RESTCMOS.EXE program which is run from DOS line to restore CMOS from a saved file.
 - Added Cold Boot option to the ACTION menu. Cold boot acts like powering offyour system.
 - The Font selection for InfoSpy windows is now saved to the INFORMER.INI file and is loaded whenever InfoSpy is executed.

v2.06 - 10/10/94
 - Updated menu items to Windows standards, ie '...'.
 - Added SYSTEM ALARMS (under Monitor Menu) that let you specify minimum values for Resources, memory and disk.  When any of these reach the minimum InfoSpy will react by posting an Alarm Dialog.

 - Added Virtual Memory alarm to System Alarms. This alarm will trigger when windows has exhausted its RAM and is going to start paging to the SWAP file.

 - Added DOS Memory available amount to the Memory Info Screen, Alarms screen, Stress screen, Resource Monitor screen.  DOS memory available indicates the amount of memory in the first 1mb that is available to windows programs.

 - Updated Memory Info and Heap Info screens to be MDI children to let you print & copy them.

 - Added MEMORY USAGE BY TASK (under Spy Menu) that shows stack and local heap usage for all running tasks.

 - Added MEMORY WATCHER function (under Monitor Menu) that will continuously monitor the Stack,DSeg & Local heap usage of the active task!

 - Added PRINT SETUP menu option which gives print params so that PRINT ACTIVE menu option will print immediately without prompting for options.

 - Correct print bug that was not printing the window title on the printed output.

 - InfoSpy now recognized when it is running on OS/2 and will disable incompatible functions.

 - Netware Object list bug fixed.

 - System info and Timer info screens are now MDI children.

 - IntelliLib sub-system updated to let you dynamically load and unload DLLs and their functionality without restarting InfoSpy.

v2.05 - 8/28/94
 - Optional Button bar added as well as dialog to set button bar options.
 - Optional MDI help line added.
 - Added function to grab printer & Com ports in stress functions.
 - Disk Monitor setup now has scroll bars on disk selection list boxes.

v2.04 - 8/10/94
 - Added SOUND to InfoSpy error message boxes.
 - Removed HELP button from Memory Information screen.
 - Added Access mode to Open File list.
 - Added PSP seg to Task List.
 - Resource Monitor (Text&Graph) now let you monitor disk available on up to 4 disks.
 - Corrected bug that would not turn off Timed Refresh option.
 - Added Print & Save options to the Memory Hex Dump windows (use the System Menu of the Hex Dump Window).
 - Added Clipboard functions to copy contents of Active Windows and Memory Hex Dump windows to the Clipboard.
 - New DLL to contain Windows related lookups -> INFWNDLL.
 - New Global Atom list to show all global strings allocated to Atoms.
 - Corrected Network DLL to correctly show Non-NETWARE networks and to use an alternate Device Redirection scheme for non-Netware networks.
 - Menus are updated: Printare under FILE. Memory Info is under HEAP.
 - Added CANCEL button to IntelliLib library selection screen.
 - New DLL and menu options for STRESS testing Windows. Includes functions to Grab Global Heap, GDI, USER, File Handles,Disk Space, Timers and also a Disk I/O stress functions that continually does disk I/O.

v2.03 - 7/25/94
 - Task list modified to contain the path of the task program.
 - Added Command line parameter (:) to allow you to specify a different INI configuration file. Example: InfoSpy :c:.ini.
 - Added File Activity Trace. Traces WindowsFile Creates& Deletes.
 - Fixed bug (0001:1957) that caused GPF when you pressed CANCEL on the Comm trace startup dialog.
 - Added VMRing 0 inquiry support. Lets you list the Virtual machines and VxDs on your system.
 - Added VM message trace, traces all Virtual Machine messages from Ring 0.
 - Fixed bug (0001:020A) which caused GPF during Application summary.
 - Fixed bug in COMM Trace that was giving gpf : 'NOT PRESENT FAULT'. The trace routine will now report that it was 'UNABLE TO INSTALL THE COMM HOOK' without a GPF!.
 - Added option to allow trace boxes to filled at top or bottom of list.
 - Added option to end trace when box is full or to erase oldest entry.
 - Added Resource & Memory monitor in Text or Bar Graph mode.

v2.02 - 6/24/94
 - Corrected RunTime Err 201 at 0015:038E that occurs under WFWG. Thanks Ed!
 - While Comm Tracing - selecting the "StopCommTrace" menu option now simply disables the trace without deleting the trace window. You can restart the trace in the same trace window by selecting the "Trace Serial Comm" menu option again.
 - The "INFNW" Dll was renamed to "INFNWDLL" and the "INFHOOK" Dll was renamed to "INFHKDLL".  This was due to complaints of existing Dlls from other products by the same name.
 - All the functionality related to DOS inquiries, ie: Device drivers, Memory Control Blocks, Open Files, Environment, etc.. were removed from the mainline code and placed in an IntelliLib DLL - "INFDSDLL".  This was done to satisfy several complaints of people running OS2 and Windows NT that those functions did not work or gave screwy results... so now they can just shut them off using IntelliLib!

v2.01 - 6/15/94
 - Added Network Information DLL.
 - Added Serial Communications Trace DLL.
 - Added Intellilib capabilities.

v2.00 - 5/15/94
 - Changed to MDI application will seperate window controls.
 - Added sort options to Global Heap display
 - Added Open Files, Device Redirection, Dos Memory, Dos Device Drivers, Environment, Window Class, MultiMedia, Application Summary and System Information windows.
 - Added Automatic Refresh feature.
 - Added Windows Shutdown, Restart and Reboot Actions.
 - Rewrote Print and SaveAs capabilities.

v1.20 - 4/1/94
 - Include DPMI trace info.

v1.14 - 2/8/94
 - Updated List box positioning

v1.00 - 9/1/93
 - First Version


Demo
Demonstration Version

Thank you for taking the time to load and explore the demonstration version of InfoSpy.

You will notice that InfoSpy provides you with multitudes of functions to explore, monitor, schedule and track your Windows system.  However, most of us are interested in specific tools to assist us with specific tasks.  That is why we have added IntelliLib technology into InfoSpy.

In a nutshell, IntelliLib technology is a means of letting the user decide which portions of a programs (via Libraries) are loaded into Windows and appear on the menu.  Libraries of functions that are not chosen do not use a single byte of Windows memory!.  InfoSpy libraries can be specified from the IntelliLib menu item under the Configure menu.

None of the functionality of InfoSpy is disabled for this demo, therefore your incentive to purchase InfoSpy is the knowledge that the annoying introductory splash screen as well as the constant use of the phrase DEMO VERSION will not appear in the purchased version.  In addition, the size of the InfoSpy program is 50k smaller!

InfoSpy costs just $19.99 per copy and we provide aggressive discounts for multiple copies or site licenses!

For More information or to purchase InfoSpy, please call (206) 316-8645 or,

Write:
Dean Software Design
P.O. Box 13032
MillCreek, WA 98082-1032

Email:
CompuServe: 75240,65
America Online: SteveDean
Internet: 75240.65@Compuserve.com


Register
Register this Program

This version of InfoSpy is Unregistered.  You may use this program without restriction, however we expect that if you like InfoSpy that you will register the program with the authors.

None of the functionality of InfoSpy is disabled for this unregistered version, therefore your incentive to register InfoSpy is the knowledge that the annoying introductory splash screen as well as the constant use of the phrase UNREGISTERED will not appear in the purchased version.  In addition, the size of the InfoSpy program is 50k smaller!

To Register:

A. Register on CompuServe's Shareware Registration Forum:  GO SWREG.  InfoSpy Registration ID: 1846

B. Pay by VISA/MC. Call (206) 316-8645 to place your order or send an EMAIL with your VISA/MC #, expiry date, name, address and number of copies to 75240.65@COMPUSERVE.COM

C. Send a cheque or money order for $19.99 to:

Dean Software Design
P.O. Box 13032
Mill Creek, WA 98082-1032

D. For more purchase information call (206) 316-8645 8am-3pm Pacific time or leave a voice mail.

(Canada/Mexico add $1.00 for postage, all other countries add $2.00 for postage please! Note: US Postal rates just increased by 20%)

Your registration will entitle you to:

1. A registered copy of the latest version of InfoSpy.
2. Other fine shareware by Dean Software Design.
3. Support.

Please use the following form and allow 1-2 weeks for delivery.

===============================

InfoSpy Registration

Name:

Company:

Register to:

Address:

City:

Phone:

Number of Copies: _________

Diskette Size: ____________

Version: Latest _______ Specific _______

Total: $___________________

Special Instructions:

===============================

Do you have any questions or comments? Send us a letter or use EMail on CompuServe address 75240,65.  We will promptly get back to you!

Disclaimer - Registration Agreement
===================================

Users of InfoSpy must accept this disclaimer of warranty:

"InfoSpy is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of InfoSpy."

InfoSpy is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, but please do not give it away altered or as part of another system. The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. If you find this program useful and find that you are using InfoSpy and continue to use InfoSpy after a reasonable trial period, you must register it!  The registration fee will license one copy for use on any one computer at any one time.

Commercial users of InfoSpy must register and pay for their copies of InfoSpy within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Dean Software Design.  In general, multiple copies of InfoSpy can be registered at the following rates:

 1 - 10 copies:   $ 19.99 per copy
11 - 20 copies:   $190.00 + $19.00 per copy over 10
21 - 50 copies:   $360.00 + $18.00 per copy over 20
51 - 100 copies:  $850.00 + $17.00 per copy over 50
101+  or site licenses call (206) 316-8645, Email or Write us!)

Anyone distributing InfoSpy for any kind of remuneration must first contact Dean Software Design at the indicated address for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering InfoSpy immediately (However Dean Software Design must still be advised so that the distributor can be kept up-to-date with the latest version of InfoSpy).

You are encouraged to pass a copy of InfoSpy along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it.

All registers user receive free technical support for 90 days from the date of registration. Also all registered users receive a free upgrade to the next version of this program when that version becomes available. To report bugs, receive help and bug fixes please send a CompuServe message via CompuServe Mail to:

Dean Software Design
[75240,65]

or, if you do not have access to CompuServe, write to us!

Definition Of Shareware
=======================

Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee - if you don't use the product, you don't pay for it.