Created Date: 06/14/2005
Updated Date: 02/15/2007
Sometimes Technical Support needs to troubleshoot GUI: seamless, copy/paste, and other issues. The usual approach is to request window message traces using Spy++ or other tools. However, tools that create message logs are unable to save information about windows in the system/session such as creation/destruction time, screen coordinates, process and thread ID, and so on.
The WindowHistory constantly monitors windows in the system (session) and allows you to save information about windows for further analysis.
If you want to trace window messages at the same time, run CTX111068 - MessageHistory together with WindowHistory.
The utility has a simple interface:
You can include all child windows and specify update frequency. After every interval (5 seconds by default) the utility captures information about current windows in the system. Shorter intervals can be specified for a better capture. For example, if users manage to run and quit Notepad between updates, the information about Notepad windows will not be captured. For this you need to enable real-time support (enabled by default, “Realtime” check box): window changes are tracked as they are created/destroyed, their position and size changed, and so on.
WindowHistory can record and save all changes to all windows (Record changes check box). The following changes are recorded (including time when the change happens):
??鷉G Position and size
??鷉G Placement commands
??鷉G Attributes: visible, foreground, hung, minimized, maximized
??鷉G Extended style
??鷉G Parent and ID
??鷉G Class style
In addition WindowHistory records and displays:
??鷉G Start and end (format) time
??鷉G Records the screen size of primary display monitor
??鷉G Indicates whether a window is valid at the formatting time (helps to eliminate destroyed windows)
??鷉G Window creation and destruction time (accurate only when real-time is enabled)
A new feature introduced in version 4.0, tool tips showing window information. Point the mouse cursor to any window and tool tips show that window handle, title, class, parent window handle, title and class, process and thread ID:
You can disable and enable tool tips any time by using the “Enable Tips” check box.
How to Use WindowHistory
1. To start a capture, click the Start button and it changes to a Stop button. The dialog can be minimized after that.
2. After formatting, copy the output to Notepad and save it for later analysis by Technical Support personnel. To quickly copy captured information, use the right-click pop-up menu and select the Save All menu item to select all formatted output. Then use the right-click pop-up menu and select the Copy menu item to copy information to clipboard.
3. Then you can either copy/paste the output or use the Save button to save the output to a text file.
Download the executable file to a local workstation and run it from a command prompt or from within a session.
To uninstall this utility delete WindowHistory.exe and whhooks.dll.
These software applications are provided to you as is with no representations, warranties or conditions of any kind. You may use and distribute it at your own risk. CITRIX DISCLAIMS ALL WARRANTIES WHATSOEVER, EXPRESS, IMPLIED, WRITTEN, ORAL OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT. Without limiting the generality of the foregoing, you acknowledge and agree that (a) the software application may exhibit errors, design flaws or other problems, possibly resulting in loss of data or damage to property; (b) it may not be possible to make the software application fully functional; and (c) Citrix may, without notice or liability to you, cease to make available the current version and/or any future versions of the software application. In no event should the code be used to support of ultra-hazardous activities, including but not limited to life support or blasting activities. NEITHER CITRIX NOR ITS AFFILIATES OR AGENTS WILL BE LIABLE, UNDER BREACH OF CONTRACT OR ANY OTHER THEORY OF LIABILITY, FOR ANY DAMAGES WHATSOEVER ARISING FROM USE OF THE SOFTWARE APPLICATION, INCLUDING WITHOUT LIMITATION DIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL OR OTHER DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You agree to indemnify and defend Citrix against any and all claims arising from your use, modification or distribution of the code.