Welcome

DeskPins v1.30

Freeware, Copyright © 2002-2004 by Elias Fotinis
Released on 2004.05.03

Description

DeskPins can be used to make any application topmost, that is, to keep it above all other windows. Just grab a pin from the DeskPins icon in the system notification area (a.k.a. taskbar tray) and click on any window. This functionality is identical to the "Always on Top" setting found in some programs. With DeskPins you can add this feature to any program!

Features

  • Unlimited number of pins available.
  • Intelligent handling of various application types.
  • Powerful wildcard-based automatic pin support.
  • Global hotkeys.
  • Negligible system resources usage.

System Requirements

DeskPins is not a demanding program and will run on practically any system with Windows installed.

  • Windows 95, 98, ME, NT, 2000, XP, 2003.
  • 386/10MHz class CPU or higher
  • 4 MB RAM
  • less than 200 KB of free disk space
  • 4 bpp (16 colors) minimum - 8 bpp (256 colors) or more recommended


What's New

New features

  • Wildcard-based Autopin feature.
  • Language packs.

Improvements

  • Support for any pin color.
  • Tab-based Options dialog.
  • Better XP themes support.


Getting Started

A quick example

Although DeskPins interface is quite intuitive, here's an example with instructions to get you started. Suppose you are checking a document and would like to keep the Windows Calculator on top, in order to perform and verify some operations:

  1. Make sure DeskPins is running by looking at the system notification area (tray). If not already running, start DeskPins from the Start menu.
  2. Start Calculator.
  3. Click on the DeskPins icon at the tray. The cursor will turn into a pin.
  4. Click on Calculator. A little pin icon will appear on its caption and the cursor will revert to its normal shape.

That's it! You've just pinned Calculator. To verify that it has been made topmost, try selecting the document window; it will become active but Calculator will still be over it.


Using DeskPins

Working with DeskPins

While it is running, DeskPins will place an icon on the taskbar notification area (systray). You can click on it to enter Pin mode, or right-click on it to display the Tray icon menu. You can also use Hotkeys to perform certain actions.

Pin indicator

When a window is pinned, a small pin icon is placed on its caption, next to the minimize, maximize, and close buttons, as a reminder. You can click on it to remove it and make the pinned window normal again (non-topmost). Closing DeskPins will also remove all pins currently in use.

You can safely minimize a pinned window to temporarily make room on the screen for other programs. When you restore it, the pin will still be there and the window will still be top-most.

Closing a pinned window (via the X button or Alt-F4) will automatically free the associated pin.

You can find out how many pins are currently in use by right-clicking on the DeskPins tray icon and selecting the "About..." command. The About dialog displays the number of active pins using a bold font.

Window ownership

An application can have many windows. Some of them (for example, dialog boxes or tool windows) are usually owned by another window, called the owner window. This means that they are always shown on top of their owner. Since it doesn't make much sense to pin an owned window by itself, DeskPins will always check if the window you are trying to pin has an owner and pin that instead. To see this in action, open Notepad and bring up the About dialog from the Help menu. If you try to pin the About dialog, the pin will be placed on the Notepad window. Of course, pinning an owner will also make all its owned windows topmost.


Pin Mode

Entering pin mode

You can use the mouse to pin a window by switching your desktop into pin mode. In this mode, the Windows cursor turns into a floating pin. Clicking on any window will place the pin on it and restore the cursor to its original shape. If the window you selected cannot be pinned for some reason, an error message will be displayed.

You can enter pin mode in several ways:

  • by clicking on the DeskPins icon in the system notification area (tray)
  • by right-clicking on the above icon and selecting "Enter pin mode" from the menu
  • via a hotkey; the default assignment is Ctrl-F11

To cancel pin mode without selecting a window, right-click anywhere with the mouse or hit any key on the keyboard.


Auto-Pinning Windows

You can configure DeskPins to automatically pin certain windows as soon as they are created. This should be useful in case you always want to make an application topmost (e.g. Calculator, console windows, etc).

Rules

You can specify which windows will be auto-pinned by adding auto-pin rules (see Autopin options). Every time a window is created, DeskPins will check whether it satisfies any rules, and if so, it will pin it. A rule consists of two parameters: a title and a class, which are explained below. Both parameters can contain DOS-style wildcards (* and ?) and they are not case sensitive.

Title

The window title is usually displayed on its caption. Applications also display the title of their main window on the taskbar. The title may contain more than just the application name; for example, many programs also display a document name.

When you create a rule based on the window title, you should try to specify the part of the title that stays the same. An example may help: Suppose you would like to create a rule for Notepad. The window's title will be "Untitled - Notepad" if no file is open, or "some file name - Notepad" otherwise. To make sure that both cases are covered, you should mask out the variable part and only keep the part that's always the same. So, you could use something like "* - Notepad", where the * wildcard represents any possible combination of characters.

Class

The window class is essentially its type. It is specified when a window is created and remains unchanged until its removal. It is used mainly by application developers; most end users need not worry about it. However, because of its persistence, the window class can be used to easily identify windows. For example, all Notepad windows have a class name of "Notepad". So, another way to detect these windows would be to specify their class name, without worrying about the title, since only Notepad windows will be of class "Notepad". However, using both the class name and the window title (wherever possible) is considered best practice.

Some examples of class names are:

  • CabinetWClass: Explorer folder windows
  • ConsoleWindowClass: Console windows
  • MSPaintApp: the Windows Paint utility

The Edit Rule dialog provides a simple way to read the title and class of any window by using the mouse.

Delay

Although the class name is invariable during the lifetime of a window, its title is not. To make things worse, the title usually changes after the window is created but before it is shown, making it impossible to see the original title. To overcome this, DeskPins lets you specify a delay after the creation of a window, to allow for any changes to take place. This delay is measured in milliseconds and applies for all the rules. You can set this delay, along with the auto-pin rules in the Autopin options page.

Tips

  • Try to be as specific as possible when defining rules. Also, try to use both a window title and a class when possible.
  • Use a single asterisk (*) to match any text. Leaving a field empty will only match an empty title or class. Note, however, that a window class cannot be empty.
  • Don't rely on the class of dialog windows being unique. Almost all dialog boxes in all applications have the same class ("#32770"). If you must make a rule depending on a dialog box, you should also use the dialog title.


Hotkeys

Using hotkeys

If you prefer working with the keyboard, you can use the DeskPins hotkeys:

  • Ctrl-F11
    Enters Pin mode. This is especially useful on Windows XP where the DeskPins systray icon may be automatically hidden if not used for some time. Furthermore, you can use it to quickly pin several windows in succession without moving the cursor to the systray all the time to reenter pin mode.
  • Ctrl-F12
    Toggles the pin state of the currently active window. If there's already a pin on the window, it will be removed; otherwise a new one will be placed on it.

You can customize the hotkeys in the Hotkeys options page of the Options dialog.


Tray Icon Menu

Tray menu commands

Right-clicking on the tray icon will bring up a menu with the following options:

Enter pin mode
Switches the desktop to Pin mode by changing the cursor into a floating pin, ready to be placed on a window. Selecting this menu item is the same as left-clicking on the tray icon.

Remove all pins
Removes all the pins currently used.

Options
Displays the Options dialog.

Help
Displays this help file.

About
Brings up a window that displays program information and the number of pins in use.

Close
Removes all pins and quits DeskPins.


Options Dialog

Customize DeskPins

You can configure DeskPins by right-clicking on its tray icon and selecting "Options..." from the menu. The Options dialog will then be shown. The various program settings are organized in several pages:

  • Pins options
  • Autopin Options
  • Hotkeys Options
  • Language Options

You can click the Help button at any time to get information about the options in the current page. When you have finished making changes, hit OK to save and apply them or Cancel to discard them. Hitting the Apply button will save the options and keep the Options dialog open; this can be useful if you want to experiment with several different settings (e.g. the pin color).


Pins Options

Pins settings

This page allows you to customize the appearance and behavior of the pins.

Color
Select your favorite pin color using the standard Windows color dialog. This color also applies for the pin icon in the notification area (tray). Changing this will update all existing pins automatically. The default color is red.

Tracking rate
Controls how often each pin checks the pinned window's position and state. Lower values will make the pins more responsive. The performance of modern systems will not suffer even at the lowest setting. However, you might want to increase this number on older computers. Changing this will update the tracking rate of all existing pins. Valid range is 10 to 1000 msec. The default value is 20 msec for Win2000/XP and 100 for older Windows versions, because the latter cannot go below 50 msec.

Tray Icon Activation
You can select whether you want to single-click or double-click on the tray icon to enter pin mode. Earlier versions of DeskPins used the double-click mode (which is the standard Windows behavior), but single-clicking has been found to be more usable and is now the default.


Autopin Options

Autopin settings

This page configures the Autopin feature. You can learn more about it in Auto-pinning windows.

Enable
Check this to enable Autopin and allow the other options to be edited.

Rules
This list contains all the configured rules. Each rule can be specifically enabled or disabled by checking or clearing the tick box on its left. You can add a new rule by clicking the Add... button and remove any of them using the Remove button. To edit a rule, double-click on it or click the Edit... button. This will bring up the Edit Rule dialog. Finally, you can use the Move Up and Move Down buttons to reorder the rules (although their relative order doesn't affect their functionality).

Delay
This controls how long DeskPins will wait before checking the Autopin rules on a newly created window. This is necessary for rules that depend on window titles, because some windows are first created with a generic title which they change before they're shown. The default value is 200 msec. If you notice that some rules are not working, you may try increasing this value.


Hotkeys Options

Hotkeys settings

This page configures the global system Hotkeys available with DeskPins. To change a hotkey, select a field and press the keyboard combination that you'd like to use. To clear it, hit Delete or Backspace.

Enable
Check this to enable the hotkeys and allow them to be changed. If you need to temporarily turn off the hotkeys without clearing them, you can uncheck it.

Enter pin mode
This hotkey switches the desktop into Pin mode. The default is Ctrl-F11.

Toggle active window pin
Use this hotkey to pin or unpin the currently active window. The default is Ctrl-F12.


Language Options

Language settings

This page lets you select the desired language module and localized help file from those installed. To find out how to install or even create new language packs see Language packs.

Interface
Select the desired language module to be used for menus, dialogs and messages. The English interface is built into the program, so it is always available. Other modules can be downloaded and installed separately.

Help
Select the desired help file to be used. DeskPins originally contains only the English help file.

Each option shows the language name and intended program version (e.g. German v1.30), and the corresponding file name than contains it (e.g. DeskPinsGerman.chm). The interface and help versions should match the version of the program, otherwise you may get erratic behavior.


Edit Rule Dialog

Rule properties

This dialog lets you modify the properties of an autopin rule.

  • Description
    This can be anything you want. It will be displayed in the rules list of the Autopin options page.
  • Title / Class
    The title and class of the window to pin. For more information, see Auto-pinning windows.

The Title and Class fields have a little target icon to their right side, which you can use to retrieve the corresponding attributes of any window. This saves you the trouble from typing the window title and allows you to read its class name (the latter being only possible by using special software). Just grab one of them with the mouse and drag it over the window of interest. While dragging the target icon, the corresponding text field will be constantly updated and the border around the targeted window will flash. When you get the information from the desired window, release the mouse button. You can then edit the text field, if you want, in order to add wildcards.


Language Packs

Getting language packs

You can download additional language packs from the DeskPins webpage (see Support & contact). Each language pack contains a DLL file with the translated program interface (menu, dialogs, and messages). A translated help file (CHM) will also be included, if available. Multiple languages can be installed and each user can select their favorite from the Language options page.

Installation

To install a downloaded language pack, open it with a ZIP-handling program (e.g. WinZip) and copy the included files in the DeskPins folder (which normally is "C:\Program Files\DeskPins").

Creating new language packs

If you are interested in translating DeskPins, please contact me for details.


More

This section contains miscellaneous information.


Uninstall

To uninstall DeskPins, select the Uninstall item in the DeskPins program group in the Start menu, or use the DeskPins entry in the Add/Remove Programs applet of the Control Panel.

The uninstaller will remove the program folder and the following Registry keys:

  • HKEY_LOCAL_MACHINE\Software\Elias Fotinis\DeskPins
  • HKEY_CURRENT_USER\Software\Elias Fotinis\DeskPins


Support & Contact

Email

For any bugs, comments, or suggestions, please email me at the following address:

efotinis@pat.forthnet.gr

Web

You can visit the DeskPins webpage at:

http://users.forthnet.gr/pat/efotinis/programs/deskpins.html


Known Issues

The following are known issues with DeskPins. Some of them are by-design, meaning that they cannot be solved. The rest will probably be addressed in future versions.

  • Some programs (like Winamp and WMP) change the shape of their windows to be non-rectangular. In these cases, the pin may float outside the visible area of the pinned window.

  • Some applications occasionally change their main window by hiding the current one and displaying another. In such cases, DeskPins will move the pin on the first visible top-level window it finds to ensure that the pin is always accessible. This is intentional.

  • On some applications (notably MS Office) the pin sometimes gets behind the pinned window. This minor problem does not affect the pin's functionality. Moving or resizing the offending window will bring the pin in front again.


History

This is a list of the most important changes in DeskPins releases:

v1.30 -- 2004.05.03

  • Autopin feature.
  • Better localization support. DeskPins now supports separate language packs, instead of including all languages in the main program file.
  • Pins can be of any color.
  • Full XP theme support.
  • Tab-based Options dialog.
  • Fixed a multi-monitor bug reported by Grant Emsley and tested on multi-monitors system.
  • Fixed a bug that would crash DeskPins just before exiting on Win9x (options were not written in the registry).

v1.21 -- 2003.06

  • Changed the tray icon activation method to a single click (rather than a double click). Thanks to "Stathakis" for mentioning it.
  • Completely re-designed the internal window-picking implementation (pin mode) to prevent the desktop from blinking; it should now be possible to work with multi-monitor configurations (although not checked yet).
  • Built-in Greek interface support.

v1.20 -- 2003.05

  • Windows with hidden parents can now be pinned (e.g. Display Properties).
  • Works with Delphi/Builder apps (VCL).
  • Distributed in self-installable executable.

v1.10 -- 2002.12

  • Replaced pin window with a pin cursor.
  • Added hotkeys as suggested by "scooby".

v1.00 -- 2002.11

  • First public release.


Legal

This program is provided "as-is". In no event shall the author be liable for any damages caused by the use (or misuse) of this software.

You can freely copy and distribute this program in its original form. You must not, however, claim that you wrote this program or charge any money for its usage.

All trademarks mentioned in this file are the property of their respective owners.