═══ 1. Copyright Disclaimers and other issues ═══ The ClipView suite of programs: ClipView.exe ClipPrint.exe ClipPipe.exe PipeClip.exe are written by Dave Saville and are (C) Copyright 1996-2002 by Dave Saville. All rights reserved. These programs are freely distributable, and may be used by and distributed along with any other software, provided that these files are not internally modified, nor sold as a complete package by themselves. These programs are provided "as is" without any warranty of any kind either expressed or implied. If it breaks you get to keep all the pieces. These programs are 'postcardware'. If you like them please send me a postcard of something interesting in your local area, address below. If you don't like 'em - tough. Enjoy. Dave Saville 49 Mungo Park Way Orpington Kent UK BR5 4EE dave.saville@ntlworld.com ═══ 2. Installation ═══ The ZIP file was created with INFO-ZIP. I assume you have unzipped it as you are reading this! UNZIP the programs to a directory somewhere useful, like a directory on your PATH if you want to use ClipPipe or PipeClip.exe Note that the EMX runtime dlls are required. ═══ 3. ClipView ═══ *** WARNING *** WARNING *** WARNING **** As from ClipView 1.6 the format of the .ClipSave file has changed. It is NOT, repeat NOT backwards compatible. If you are updating from a previous version then ClipView should cope but in case of problems please delete your .ClipSave file(s) first. Sorry for any inconvenience. *** WARNING *** WARNING *** WARNING *** ClipView gives multiple text clipboards. It is based, visually, on the Unix utility cutview. But it is not a port. ClipView traps the write to clipboard messages and, if textual, copies them. Each clip is presented in ClipView as a single line containing two buttons and a one line list box. (Note that on install, or if a .ClipSave file cannot be found, then ClipView will only show one line - the current clipboard contents.) Clips may be edited, printed and saved. The current contents of the clipboard may be changed by selecting a different clip to be the current one. Note: The only sizing operation allowed is to make the window wider. ═══ 3.1. Other Viewers ═══ Note that ClipView only uses the text portion of the clipboard. Starting a similar program, such as the clipboard viewer itself, may disable ClipView, as only one program can trap the messages at a time. ClipView is a "well behaved" clipboard viewer in that it will pass on WM_DRAWCLIPBOARD messages to any previously registered clipboard viewer. It will also restore a previous viewer on exit if it is still valid. Clearly any clipboard viewer that is not "well behaved" will "break the chain" as it were, which is why I said may in the first paragraph of this section. It follows from the above that it is possible to have more than one ClipView running for those of you who must have more than 21 clips. (Hint. Fill one with your locked clips and turn off capture for that instance.) ═══ 3.2. Startup Options ═══ ClipView can be run from the command line or program object - I stick one on my xcentre. There are six start up options: -a Autosave all clips at program close -f Filename to save clips as - default .ClipSave - Files will be saved in the path contained in the HOME environmental variable, or the working directory. -h mins Number of minutes of inactivity before ClipView will autohide -m Start minimised -o Always stay on top -u Unhide on copy to clipboard ═══ 3.3. Clips ═══ Each clip is represented by one line in the viewer. The line is made up of two buttons and a list box. Operations on the clips may be done either by using the Clips menu or the right mouse button (RMB) on the desired clip. Some operations such as Edit and Print can only be done via the RMB as a clip must be selected. The first button (select) shows by a '>' which clip is the current clipboard contents. This rotates round the 'free' lines each time a clip action is made. To restore to the clipboard a previously taken clip just click the select button before pasting. The second button (lock) shows an open padlock if the clip is open and a closed padlock if the clip is locked. A locked clip can be selected like an unlocked one, but will never get overwritten. For example I keep my email address in a locked clip. A locked clip must be unlocked in order to use RMB functions on it. The list box shows the clip. The clip may be edited in situ, by double clicking or by RMB pop up, provided it is unlocked. Locking the last free clip will generate a further free line up to a maximum of twenty one. You can also add lines via the RMB pop up or the Clips menu. The pop up allows clips to be added, deleted, printed, edited or the whole lot saved to a file called '.ClipSave'. This file will either reside in the directory you ran ClipView from or in your HOME environmental variable if present. Restarting ClipView with a .ClipSave file restores all previous clips and button states. However, the oldest unlocked line will be overwritten by the current clipboard contents. When a write clipboard operation, from anywhere, happens ClipView will overwrite the oldest unlocked clip it has (LRU), unless the text is already in one of the clips in which case only the timestamp is updated. This means that after time the clips can appear in the ClipView window in an odd order. Starting from scratch they will rotate around the rows, but as you for example make a different one current, it will change the timestamp for that clip and hence the overwrite order. Clip capture can be toggled on or off from within ClipView. ═══ 3.3.1. Add Clip line ═══ From the RMB or Clips menu this will add another clip line to the bottom of the window up to a maximum of 21. ═══ 3.3.2. Delete Last Clip line ═══ From the RMB or Clips menu this will delete the bottom clip line. Regardless of its lock state ═══ 3.3.3. Save Clips ═══ ClipView needs to know where to save the clips. If a HOME environmental variable is found then that will be used, otherwise the current working directory is used. The -f switch at start up can be used to override the file name. Default is .ClipSave. ═══ 3.3.4. Edit Clip line ═══ Editing clips can be done either in situ or by double clicking a clip line or RMB and selecting 'Edit' from the pop up menu. Select 'Save' in the editor and then exit the editor to update the clip. ClipView needs some temporary space for clip edits. For this it assumes a TMP environmental variable exists that points to a temporary directory. Clip edits are saved as pid.clip#.tmp and removed after use. Note that the edit session is running asynchronously with ClipView. This has several implications: 1. Any action in the editor that writes to the clipboard will be seen by ClipView. 2. When saved back, it is possible that normal clip rotation has already overwritten the clip with a new value and saving will overwrite it again. Thus losing a later clip. (I have yet to work out a locking strategy and I am not sure if it is worth the effort.) 3. When editing the current clip, either in situ or via the editor, is finished and if it is still the current clip, then ClipView updates the contents of the clipboard. ═══ 3.3.5. Print Clip line ═══ This RMB option will cause the selected clip to be:  Printed to a printer  Saved to a file  Appended to a file ═══ 3.3.5.1. To Printer ═══ This RMB option will print the selected clip to the selected device:  LPT1  LPT2  COM1  COM2  COM3  COM4 ═══ 3.3.5.2. To File ═══ This RMB option will cause the selected clip to be written to a file. If the file exists it will be overwritten. ═══ 3.3.5.3. Append To File ═══ This RMB option will cause the selected clip to be appended to an existing file. ═══ 3.4. Options ═══ NB The settings of the "Options" are not saved across invocations, only the clips and the lock states. ═══ 3.4.1. On Top ═══ If started with the -o switch, ClipView will "stay on top" of other windows. This option may be toggled from the Options menu. ═══ 3.4.2. Autohide ═══ If started with the -h nnn switch, ClipView will autohide after the nominated number of minutes of inactivity. It will reappear by any of the normal methods for viewing a minimised window or, optionally, a new copy/cut to the clipboard. Inactive means no mouse activity in the ClipView window and no new text in the clipboard. Autohide can be toggled on or off from within ClipView and will switch between hiding and not hiding. If started with -h then the hide time will be restored. If not started with -h then toggling it on will set it to 1 minute. There is no way to alter the hide time once started. ═══ 3.4.3. Unhide on Copy ═══ If started with the -u switch ClipView will front itself, if minimised, when a write text operation is sent to the clipboard. This option may be toggled from the Options menu. ═══ 3.4.4. Save on Exit ═══ If started with the -a switch ClipView will save all clips on exit. This option may be toggled from the Options menu. ═══ 3.4.5. Clip Capture ═══ You may suspend ClipView capturing clipboard draws by toggling this option. ═══ 3.5. History ═══ ┌─────────────┬───────────────────────┐ │1.6 March │Added autohide/restore │ │2002 │ │ ├─────────────┼───────────────────────┤ │ │Added F2 to save clips │ ├─────────────┼───────────────────────┤ │ │Added F3 to quit │ ├─────────────┼───────────────────────┤ │ │Added Help │ ├─────────────┼───────────────────────┤ │ │Added menu bar │ ├─────────────┼───────────────────────┤ │ │Added -f switch to │ │ │allow save filename │ │ │other than .ClipSave │ ├─────────────┼───────────────────────┤ │ │Added -h switch to hide│ │ │after n minutes │ ├─────────────┼───────────────────────┤ │ │Added -u switch to │ │ │unhide on copy to │ │ │clipboard │ ├─────────────┼───────────────────────┤ │ │Changed format of │ │ │.ClipView save file │ ├─────────────┼───────────────────────┤ │ │Changed "next clip to │ │ │overwrite" to proper │ │ │LRU │ ├─────────────┼───────────────────────┤ │ │After editing if clip │ │ │is current then update │ │ │clipboard. │ ├─────────────┼───────────────────────┤ │ │Fixed menus to stay │ │ │open whilst traversing │ ├─────────────┼───────────────────────┤ │ │Most startup options │ │ │can be toggled once │ │ │started │ ├─────────────┼───────────────────────┤ │1.5 October │Added -a switch to │ │2001 │autosave clips at │ │ │program close │ ├─────────────┼───────────────────────┤ │ │Added -m switch to │ │ │start minimised │ ├─────────────┼───────────────────────┤ │ │Changed menu wording │ │ │from "Save buffers" to │ │ │"Save Clips" and added │ │ │save option to main │ │ │window menu │ ├─────────────┼───────────────────────┤ │ │Fixed Alt-F7 not │ │ │working for window move│ ├─────────────┼───────────────────────┤ │ │Fixed background oddity│ │ │on some displays │ ├─────────────┼───────────────────────┤ │ │Fixed bug in Print │ │ │routines. No idea when │ │ │it broke, I guess no │ │ │one was using this │ │ │option │ ├─────────────┼───────────────────────┤ │ │Fixed edit window not │ │ │coming to foreground │ ├─────────────┼───────────────────────┤ │ │Increased maximum │ │ │number of clips to │ │ │twenty one │ ├─────────────┼───────────────────────┤ │1.4 June 2001│Fixed crash on startup │ │ │if HOME environmental │ │ │variable not set │ ├─────────────┼───────────────────────┤ │1.3 June 2001│Added -o switch to │ │ │float on top - Thanks │ │ │to Ulrich MФller │ ├─────────────┼───────────────────────┤ │ │Disables RMB on locked │ │ │files │ ├─────────────┼───────────────────────┤ │ │Editing in-situ now │ │ │updates clip │ ├─────────────┼───────────────────────┤ │ │Fixed crashing if all │ │ │clips locked │ ├─────────────┼───────────────────────┤ │ │Lock button now has │ │ │graphic padlocks │ ├─────────────┼───────────────────────┤ │ │Unlinks temp file after│ │ │use │ ├─────────────┼───────────────────────┤ │ │.ClipSave file will │ │ │save in HOME │ │ │environmental variable │ │ │if set │ ├─────────────┼───────────────────────┤ │1.2 April │Added double click LMB │ │1998 │jumps to edit clip │ ├─────────────┼───────────────────────┤ │ │Fixed some bugs in edit│ │ │routine │ ├─────────────┼───────────────────────┤ │1.1 August │Added Print and append │ │1996 │to file │ ├─────────────┼───────────────────────┤ │1.0 July 1996│Initial release. │ └─────────────┴───────────────────────┘ ═══ 4. ClipPrint ═══ I do a lot of remote support work and, at some unearthly time in the morning, have several telnet sessions open as well as 3270. What I need for the postmortem at the office is some evidence. It's all there in various sessions and their history buffers, but I only want odd bits. Copying with the mouse is fine but then what? Would you believe that the clipboard viewer WON'T PRINT! So I wrote ClipPrint. Put it on your toolbar/launchpad and one click will print the text contents of the clipboard. Drag the ClipPrint program to the launchpad, Xcentre or whatever. If you don't print to LPT1 then open the settings notebook and change the parameter(s) to what you do use.  -p LPT1-2/COM1-COM4  -f filename - Prints to file instead of printer  -a filename - append to existing file. Note that ClipPrint will insert a CR/LF before appending clips. ═══ 4.1. ClipPrint History ═══ ┌─────────────┬───────────────────────┐ │1.1 July 1996│-a switch added │ ├─────────────┼───────────────────────┤ │ │-f switch added │ ├─────────────┼───────────────────────┤ │ │-p corrected in notes. │ │ │Version 1.0 notes │ │ │missed out that it was │ │ │required │ ├─────────────┼───────────────────────┤ │1.0 July 1996│Initial release │ └─────────────┴───────────────────────┘ ═══ 5. ClipPipe ═══ Used on the command line to pipe input from the clipboard. eg clippipe | someprogram ═══ 5.1. ClipPipe History ═══ ┌─────────────┬───────────────────────┐ │1.0 October │Initial release │ │2001 │ │ └─────────────┴───────────────────────┘ ═══ 6. PipeClip ═══ Used on the command line to pipe output to the clipboard. eg dir /w | pipeclip ═══ 6.1. PipeClip History ═══ ┌─────────────┬───────────────────────┐ │1.0 October │Initial release │ │2001 │ │ └─────────────┴───────────────────────┘ ═══ Using Help ═══ Use Using Help to find out how to use the help facility. ═══ General ═══ Use General Help to diplay information about the contents of the active window. ═══ Index ═══ Use Help Index to display an alphabetic list of references to the help topics in the active program. Note: To see all the text of the index entries, maximise the index window. You can select an index entry to display the help topic that is related to that index entry. ═══ About ═══ Use About to display ownership information for the active program. ═══ 7. Thanks and Acknowledgements ═══ EDM/2 Larry Salomon Jr. For basic help when I started PM programming. Ulrich Moeller For "Always on top" And my "Beta testers" For comments, new features and testing Cees van Veelen Lewis G Rosenthal Sander Nyman