noList v2.0a Copyright 1993 Jack Tan noList removes programs from the window list and Alt-Esc round-robin Type "noList /?" for help By using noList, the user agrees to the requirements stated below (in the Shareware and Disclaimer sections) Purpose ------- noList is a 32-bit OS/2 2.x application which removes programs from both the OS/2 window list and the OS/2 Alt-Esc round-robin. It is designed to be run from the command line, either windowed or full-screen. Version 2.0 of noList supports the following program types: - Presentation Manager applications - OS/2 full-screen sessions - OS/2 windowed sessions - DOS full-screen sessions - DOS windowed sessions - WIN-OS/2 full-screen sessions - WIN-OS/2 seamless applications - Folders in the Workplace Shell noList cannot not distinguish among varying views of the same folder (e.g., Icon View and Details View) by the information returned by the operating system. A "visible" process is one that is on the window list, and a "jumpable" process is in the Alt-Esc round-robin. By analogy, a process not on the window list is said to be "invisible," and one not in the Alt-Esc round- robin is said to be "nonjumpable." Syntax ------ noList has three basic modes for switches: show the help page, list the processes, and change the processes. Switches may be prefixed with either a forward slash ("/") or a hyphen ("-"), and can be inserted in any order. At least one space must appear between any switches (e.g., "/A:J /A:V" is correct, but "/A:J/A:V" is not). Syntax: noList noList /? To show the help page, either run noList without any arguments, or run it with the parameter /?. Example: [C:\]noList noList utility, version 2.0 Copyright 1993 Jack Tan Syntax: noList [switches] [ [ ...]] noList removes and restores programs in the OS/2 window list and the Alt-Esc round-robin. OS/2 text (VIO), Presentation Manager, DOS, and WIN-OS/2 programs are supported. Each program is specified by a unique identifier (ID). Each ID can be either the first letters of the process name or the system process ID. Process IDs are assumed to be decimal, unless prefixed by '0x' to denote a hexadecimal values. Either '-' or '/' can be used as the switch prefix; supported switches are: /A Use both /A:J and /A:V switches /A:J Add processes to the Alt-Esc round-robin (jumpable) /A:V Add processes to the window list (visible) /L List process IDs /M Apply to each entry if there are multiple matches /R Use both /R:J and /R:V switches (default action) /R:J Remove processes from the Alt-Esc round-robin (nonjumpable) /R:V Remove processes from the window list (invisible) /? Show this program help [C:\]_ -- Programs can be specified by name or process ID. Valid program names and IDs can be listed with the /L switch. The match is not case- sensitive, and noList only needs enough characters to uniquely identify the process. Strings can be embedded in double quotes, allowing spaces to be used in identifiers. Processes can also be sent to noList via their process IDs. Any integer is considered to be a process ID. Integers prefixed with "0x" are considered hexadecimal. Note that octal support has been removed from this release: integers prefixed with "0" are also considered decimal values. This feature was not used often, and conflicted with programs which pad their process IDs with zeros (such as the OS/2 PSTAT). Note that the output from noList /L (see below) should be used in favor of output from other programs, due to the method used in determining the proper process. Multiple specifiers may be placed on the command line, with mixing of names, decimal, and hexadecimal strings allowed. Syntax: noList.exe /L noList.exe /L [ ...] Using the /L switch without any further arguments will list all the available processes in the system. The information returned by /L includes the process ID, in base 10 and delimited by square brackets; the visibility of the program in the window list ("Vis") or invisibility ("---"), listed after the process ID; the jumpability of the program ("Jmp") or nonjumpability ("---"), listed after the visibility; and the process name, as recorded by the system. If processes are specified with the /L switch, only the listed processes are examined. Examples: [C:\]noList /L [4] --- --- Workplace Shell [4] Vis Jmp Desktop [5] Vis Jmp Icon Editor [8] --- --- Process Monitor [20] Vis Jmp EPM-E:\Jack\C\noList documentation [23] Vis Jmp OS/2 Window [24] Vis Jmp OS/2 System Editor [25] Vis Jmp noList.exe [C:\]noList 4 Icon 0x18 /L [4] --- --- Workplace Shell [4] Vis Jmp Desktop [5] Vis Jmp Icon Editor [24] Vis Jmp OS/2 System Editor [C:\]_ -- Syntax: noList /A [ ...] noList [/A:J] [/A:V] [/R:J] [/R:V] [ ...] noList [/R] [ ...] noList v2.0 has a fine degree of control which allows the user to separately modify the visibility and the jumpability of the specified processes. Users of the previous release of noList recall that these controls were locked together; they have now been split to allow the user more freedom. - To add a program to the window list, use the /A:V switch. - To add a program to the Alt-Esc round-robin, use the /A:J switch. - To add a program to both the window list and Alt-Esc round-robin, use /A. - To remove a program from the window list, use the /R:V switch. - To remove a program from the Alt-Esc round-robin, use the /R:J switch. - To remove a program from both the window list and Alt-Esc round-robin, use /R. This switch is the default action when no other switches are specified, and identifiers are specified on the command line. Any non-conflicting combination of the above switches can be used. Examples: [C:\]noList /r 0x18 "OS/2 Window" 8 Change successful: OS/2 System Editor (pid 24) Change successful: OS/2 Window (pid 23) No change needed: Process Monitor (pid 8) [C:\]noList /L 0x18 "OS/2 Window" 8 [24] --- --- OS/2 System Editor [23] --- --- OS/2 Window [8] --- --- Process Monitor [C:\]noList /A:V 0x18 "OS/2 Window" Change successful: OS/2 System Editor (pid 24) [C:\]noList /L 0x18 "OS/2 Window" 8 [24] Vis --- OS/2 System Editor [23] Vis --- OS/2 Window [8] --- --- Process Monitor [C:\]noList /A:J "OS/2 Window" 8 Change successful: OS/2 Window (pid 23) Change successful: Process Monitor (pid 8) [C:\]noList /L 0x18 "OS/2 Window" 8 [24] Vis --- OS/2 System Editor [23] Vis Jmp OS/2 Window [8] --- Jmp Process Monitor [C:\]noList /A 0x18 "OS/2 Window" 8 Change successful: OS/2 System Editor (pid 24) No change needed: OS/2 Window (pid 23) Change successful: Process Monitor (pid 8) [C:\]noList /L 0x18 "OS/2 Window" 8 [24] Vis Jmp OS/2 System Editor [23] Vis Jmp OS/2 Window [8] Vis Jmp Process Monitor [C:\]_ -- Syntax: noList /M [other switches] [ ...] By default, noList requires a nonambiguous identifier, and will not affect identifiers which match more than one process. For example, if there is a window called "OS/2 Window" and another program called "OS/2 System Editor," then attempting to apply noList to "OS/2" will fail: [C:\]noList OS/2 /L [23] Vis Jmp OS/2 Window [24] Vis Jmp OS/2 System Editor [C:\]noList OS/2 Ambiguous ID (no change): OS/2 Window (pid 23) and OS/2 System Editor (pid 24) [C:\]_ The user can use a more specific term, such as "OS/2 Win" or "OS/2 Sys" to select the program desired. To affect all programs which have the same identifier, use the /M switch to match multiple names. Example: [C:\]noList OS/2 /L [23] Vis Jmp OS/2 Window [24] Vis Jmp OS/2 System Editor [C:\]noList OS/2 /M Change successful: OS/2 Window (pid 23) Change successful: OS/2 System Editor (pid 24) [C:\]noList OS/2 /L [23] --- --- OS/2 Window [24] --- --- OS/2 System Editor [C:\]_ Return Codes ------------ noList v2.0 supports the following return codes: 0 Successful run, each requested change or listing (via the /L switch) was satisfied. 1-98 The return code corresponds to the number of unsuccessful changes. Each ID which failed to change adds 1 to the return code. Possible causes for failure include not finding the specified process, finding more than one match for the ID (when the /M switch is not used), or failing to change the status (failure indicated by the API call). 99 99 or more failures 100 Help has been requested (either no arguments or /? argument) 101 No process IDs specified, but a valid switch other than /L or /? was specified. Error message: "noList: no process name nor ID specified" 102 Switches were specified, but none were valid. Error message: "noList: switches explicitly given, none recognized" 103 Switches were specified to both add to and remove from the OS/2 window list. This can be accomplished with one switch from each set: { /A, A:V } and { /R, /R:V }. Error message: "noList: switch conflict -- request to both add & remove processes from the window list" 104 Switches were specified to both add to and remove from the Alt-Esc round-robin. This can be accomplished with one of "/A /R:J," "/A:J /R:J," or "/A:J /R." Error message: "noList: switch conflict -- request to both add & remove processes from the Alt-Esc round-robin" 105 No entries in the switchlist were found when the list was queried. Error message: "noList: cannot find entries in the window list" 106 Insufficient memory in the operating system to satisfy allocation request. Error message: "noList: insufficient memory to continue" 107 Invalid parameter passed to memory allocation system. This error should never occur, but is included for completeness. Error message: "noList: unable to allocate memory" 108 A system call made by noList was interrupted. Error message: "noList: an error interrupt has occurred; execution cannot" "continue" 109 noList was unable to deallocate dynamically-allocated memory. Error message: "noList: unable to deallocate memory" 110 An unknown error has occurred. This message should never occur. Error message: "noList: an error of unknown type n has occurred," where "n" is an integer. The vast majority of the error codes returned by noList should be under 105. Error codes 107 (invalid parameter in memory allocation system) and 110 (unknown error) should never occur. Shareware --------- Starting with version 2.0, noList is released as shareware. You may use noList v2.0 for a trial period of 15 days. If, after this period, you feel that noList is not worth registering, you must stop using it. The registration cost for an individual user is US$15. For information on business use and site licensing, please contact the author for further details. Disclaimer ---------- By using noList, the user assumes all responsibility for any consequences or damages resulting from such use, and frees the author from any obligations. Furthermore, the user agrees to not modify, disassemble, or reverse-engineer the software in any fashion. Any comments, suggestions, and bug reports are welcome by the author. His contact address is: Jack Tan P.O. Box 3894 Oak Brook, IL 60522-3984 United States of America Internet: jahk@uiuc.edu Revision History ---------------- Version 1.0 -- 3 October 1993 Requires EMX.DLL, EMXLIBC.DLL First release. Thanks to Don Meyer for the idea (1 October 1993). - Affects PM programs - Use process IDs (multiple). Prefixes of '0x' are hexadecimal, '0' are octal, and other values are decimal. - /? for help Version 2.0 -- 12 November 1993 Shareware release, US$15 to register for individuals. No longer requires EMX.DLL and EMXLIBC.DLL Nearly complete rewrite, only keeping some of the old help file. A *huge* thank you to Melissa Woo for beta testing both the software and the documentation (yup, even the docs too). noList would never have made it this far without your support and help. noList now affects PM, OS/2 text (both windowed and full-screen), DOS text (both windowed and full-screen), WIN-OS/2 (both seamless applications and full-screen sessions), and WPS folders (though not different views of the same folder). - Separated window list and Alt-Esc controls while maintaining backwards compatibility. - Switches: /A (add to window list and Alt-Esc round-robin), /A:J (add jumpability), /A:V (add visibility), /L (list processes), /M (allow multiple matches), /R (remove from window list and Alt-Esc round-robin), /R:J (remove jumpability), /R:V (remove visibility), /? (help). - Octal process IDs removed (not used, conflicts with other programs which pad decimal numbers with zeros). - Allows names instead of just process IDs - Improved return code handling Version 2.0a -- 15 November 1993 Corrected minor bug: when no change is needed, "change successful" was displayed.