ReadMe file for Double click simulator -========================================- [version 2.3, November 14, 2007] Contents: 1. Description 2. Usage 3. Changelog 4. The menu commands 5. The background 6. Known bugs 7. Future plans 8. Contact, web. Since this readme has over 250 lines, I'm not encouraging anybody to read all of it. If you have problems you can do it later, or read only the related part. Anyway, the basic part are the first three chapters. The warning: USE THIS ENTIRELY AT YOUR OWN RISK!!! If your computer hangs up and you loose some data, I'm sorry, but you were warned. (However, I'd love to know that people try this at home and if they find it useful.) 1. Description ============== Dblclick is a small and free utility for Windows, with two independently usable features: - simulates double clicks (of the left mouse button) using the middle clicks; - allows basic control of Winamp through different key combinations (global hotkeys). The software is totally FREE for everyone, which means: - use it where you want, - give it to anybody you want (the whole package, see Usage), - and never charge for it. Requirements: The program should run on all Windows versions since '95, but it was not tested on Vista. However, since version 2.3, the double click feature is available only on Windows NT with SP4+, or Win2000, or XP (Vista should work too?). Older versions had double click feature under Win98 too, but it was really buggy. Details in chapter "Background". Memory and speed issues are minor. 2. Usage ======== The program doesn't need any installation. Just unzip the files in a directory and run dblclick.exe. The dblclick.dll must be in the same directory from where you launched the exe. Uninstall is also very simple: close the program if it's running and delete the files. Note: if you used the setup program (Dblclick23Setup.exe), then uninstall it as any ohter Windows application. The software is composed of five files: - dblclick.exe (user interface, control, Winamp stuff); - dblclick.dll (the global hook implementation for mouse messages); - readme.txt (this file); - dblclick.ini (saved settings); - buglist.html (the known bugs at the time of release). The .ini file is optional, no error reported if missing (the program starts with its default values). When exiting an attempt is made to save the settings, but no errors are reported. This way you can use it from a read-only location. After launching the program, an icon (of a mouse pointer and a play/pause sign) appears in the system tray, from where you can control it. - left click on it will Enable/Disable both features, but this can be configured; - right click will bring up a menu; - double click pops up the "About" dialog BUT also has the effect of two left clicks (disables and enables for example). This can be confusing. If your mouse doesn't have a middle button (or you don't have a mouse at all) no damn thing will happen. The program will just sit in the memory, and check the (nonexisting) mouse events. The settings and the enabled/disabled status are stored in a file. The file name is identical with the name of the program, but the extension is "ini". So if you rename the exe, you'll get a new ini too. In case of errors during start, the program will display a somehow related message, except for the errors related to the .ini file. 3. Changelog ============ In version 2.3: - Windows versions older than NT SP4 are not supported by the double click feature. It was unreliable anyway. This means that the program uses only the low level mouse hook (if that's available). - left-handed mouse setting is recognised (not quite automatically, but during startup and Options change). - the structure (comments and user formatting) of the .ini file is preserved when saving the options. - modifications in the statistics group of the About dialog. (Took out the attached to processes/threads, because these are always 1 now.) In version 2.2: - took out the "Save Now" button from the Options. As Karaj suggested, modern programs don't bother the users with when to save the settings. They just save whenever those are changed. So, if you change something in the Options dialog, and hit OK, they are saved immediately. The AutoSave option dissappeared, of course. - new option for Winamp control: "Pause when stopped means 'Play'". See 4.2, Options description. In version 2.1: - new method of simulating double clicks (mouse_event() injection). Definitely more stable, the bugs vanished quickly. - using new hook if available (WH_MOUSE_LL). More reliable, precise statistics, the dll isn't loaded in every process. It consumes a little more CPU, thanks to the extra task switches that Windows does around this hook, but it is barely measurable. I mean you have to use something more detailed as the Task Manager to notice it. - thanks to the new hook (and to the event injection) each middle click is transformed into left double clicks (no more middle double clicks, you can double click as fast as single click now). - new button in the Options dialog, to be able to save settings while AutoSave is turned off. In version 2.0: - the two features are completely independent now. - Winamp control functions extended to five: Previous track, Next track, Pause, Vol. up, Vol. down. - changed the systray icon to include visual feedback for the Winamp feature too. New colors: green=enabled, gray=disabled. - some change in the code to solve the MSWord related bugs, but without mentionable results. In version 1.1: - ability to pause/continue Winamp using a global key combination. The user can choose the key combination, and can disable the whole Winamp stuff. Also a beep may be enabled, that occours if Winamp is not running during the key press. - option to auto-save settings on exit. - an Options dialog box, to control all settings. - storing in a file the options and the enabled/disabled status. - nicer systray icons; similar to the mouse icon in Control Panel. - icon is visible in the About box. Also, the About and the Options dialogs have the same icon in their title bars. All these icons reflect the current status: enabled = red mouse, disabled = white mouse. 4. The menu commands ==================== 4.1 About dblclick... --------------------- The About dialog also appears at a double click on the systray icon. Under the contact info you see statistics about the number of clicks with each mouse button. The clicks reflect the hardware click numbers, and are counted only while the double click feature is enabled. So, the generated clicks are not counted (a middle click appears as middle click, not as two left clicks). Plus, the left click means the _left_ button, even if you use the left-handed feature of Windows. If the mouse button functionality is swapped in Control Panel (left-handed mouse usage), the Statistics box's text says that the physical clicks are counted. The current status of the Winamp functionality is displayed below the statistics. 4.2 Options... -------------- a.) Enable middle->double click conversion: no comment needed. b.) Enable Winamp hotkeys: just what it writes. To see what will be disabled uncheck it, and many controls will be grayed out. c.) Beep if keys pressed but Winamp is not running: a beep is generated when you press a "hotkey", and Winamp can't be found. d.) Pause when stopped means 'Play': Sometimes Winamp is stopped, and you want to start it. You can do it via the global Pause shortcut if this is switched on. (Maybe not a widespread problem, but I needed it...) If the playlist is empty, then nothing happens (a 'Play' would pop up the "Open file" dialog. e.) Winamp hotkey configuration: select any combination you like. Below every drop-down box there are its modifiers. Note, that you can disable each hotkey individually by selecting "(not used)" from the list. (For those who wonder: WinKey is the "Start menu" key, the one with the Windows logo on it, next to "Alt".) NEVER select an alphanumeric key without modifiers! You won't be able to type it anywhere! Also beware, that many programs use the function keys for their features. f.) action for single click on systray icon: no comment needed. 4.3 Enable/disable double click ------------------------------- Install/uninstall the global message hook. Some programs have such a great feature related to the middle button, that you may want to use that instead of double click simulation. The mouse cursor part of the systray icon shows the status: green is enabled, grey is disabled. A left click on the systray icon can change this too, if configured so. 4.4 Enable/disable WinampKeys ----------------------------- Simply what it says. The global hotkeys are all turned on/off. The play/pause part of the systray icon shows the status: green is enabled, grey is disabled. A left click on the systray icon can change this too, if configured so. 4.5 Exit dblclick ----------------- Easy to guess... 5. The background ================= Dblclick was written in plain C, using only the (plain old) Win32 API. It was developed with the free lcc-win32 editor+compiler+ linker package of Jacob Navia. See http://www.cs.virginia.edu/~lcc-win32 for it. I gathered solutions related to global hooks from www.codeguru.com, and received some help in the Lcc-Win32 forum - thanks for Guruman and Viro. (http://www.q-software-solutions.com/forum/index.php) The software was tested mainly on Windows 2000 and XP. I've began the development under WinME, but version 1.1 was only used on a Win2000 one. According to the Win32 help, it should run on every Windows, beginning with Win95 OSR2. Exception is the low-level mouse hook, which is available on NT4 with SP4+ and above. The name "Piece of Soft" comes of course from Iron Maiden's "Piece of Mind" album. 6. Known bugs ============= Please read the included buglist.html for the bugs. It is easier to have them described in one place only. 7. Future plans (_very_ slooooow development) =============== - an installer, that gives standard features (choose folder, create shortcuts, uninstall, etc). - option to hide systray icon totally (+shortcut key to pop up the menu). I wonder if this worths the effort. A global hotkey must be always used for this, and in the post-Win2000 world the systray icons are hidden automatically on most desktops. - special ("custom") versions, having modified behaviour. This probably fits only to those who ask for them. For example an "Amiga" version would simulate the press of "Ctrl" or "Shift" keys. Tests were made, but unfortunately I didn't have the time to make it a fully functional thing. 8. Contact, web =============== Any suggestions (missing features, changes to current features), bug reports, critics, to the following address: piece_of_soft@operamail.com Current web address: http://pieceofsoft.freebase.hu/ You can ask for the source code in e-mail (I've never tried to compile with MS Visual Studio - the project files are certainly incompatible.). If you make changes to it, please make a note in a separate text file and attach it to these if sending further. Piece of Soft