═══ 1. Extended Help For INI File Management ═══ The INI File Manager allows you to perform administrative functions upon your OS2 System INI files. These files are identified in your config.sys file in the PROTSHELL statement. You may not realize it, but the two system INI files are necessary to operate OS2 properly. The following Topics may be selected from this menu: Overview: Purpose and function Anomalies: (Bugs) Action Bar Items o File o Appls/Data o Grps/Pgms o Colors o Help Dialog Panels o Group List Display o Program List Display o Open User INI o Backup System INIs o Backup System INI is Running o About o Appl/Data o Installed Programs Detail Edit ═══ 1.1. Purpose and Function ═══ The original purpose of this utility was to provide a way to backup the running OS2 INI files. If the running INI files became damaged, then the PROTSHELL statement in the config.sys file could be modified to point at the backups. Additionally, I have the task of trying to get people up to speed with OS2 in our shop and I find myself spending a lot of time updating other people's installed program lists. I wanted a utility that could extract group and program definitions and reload them to other user's INI files. I also got really tired of explaining that when you start a program in a window that there is no way of telling it to maximize on startup. So rather than continue to explain that you couldn't do this very sensible thing, I wrote the program details update routines to allow the user to modify some of the things that the Program Properties update routines don't allow you to get to. Finally, I got tired of showing people how to reproduce the questionable but mysteriously popular color settings that I use. So, I wrote the color save and restore routines. I hope you find this utility helpful, but (here comes the disclaimer) I am in no way responsible for any damages the use of this utility may cause. If you have any suggestions or comments, I'd like to hear them. The best way to find me is through Compuserve 75600,237. Dave Lester 06/04/90 ═══ 2. Commercial Announcement ═══ I hope you find this utility helpful, but (here comes the disclaimer) I am in no way responsible for any damages the use of this utility may cause. You are free to use this utility at your own risk with no obligation to me, the author, for only a short period of time. If you find this utility as helpful as I have, you should send me money to demonstrate your appreciation. Your appreciation should rule your generosity. For example, let's say that you use this utility to propigate standard installed programs for 20 users at your company's location. At $.50 a shot, you (or your company) might be moved to send me a check for $10. I'll take it, no problem. For those of you so inclined, send me money or checks at: Dave Lester Box 461 4 N. 3rd St. New Freedom, Pa. 17349 If you have any suggestions or comments, I'd like to hear them. The best way to find me is through Compuserve 75600,237. Dave Lester 06/04/90 ═══ 3. Anomalies (Bugs) ═══ I wish that this utility were perfect, but it's not. Most of the problems are centered around the fact that the OS2 treatment of the installed program list does not really follow the intentions of the control blocks used. Most of the problems you will find occur while using the program details edit function. In particular, they are: The initial window position and size parameters are not usable. The control block for this purpose in PROGDETAILS is of type SWP. The implication is that you can do the same things with the SWP control block that you can do with a WinSetWindowPos call. You can't. The SWP.fs field seems only to accept the values that you can define with XYF_ constants. I have disabled the Size and Move radio buttons on the program details edit panel until I can find a way to make them work properly. The environmental string edit function on program details is similarly disabled. This circumvention causes me more pain than you will ever know. The Combo Box processing that I coded took about as much time as all the rest combined. The sad truth about the environment string processing is that neither PrfAddProgram nor PrfChangeProgram can handle environment string processing as documented. In the PROGDETAILS control block you are supposed to pass a PSZ that points to an array of environmental strings terminated with an extra '\0'. I did that, but the Prf calls never handled them properly. The first string would come through followed by garbage. ═══ 4. Action Bar ═══ Surprise...The Action Bar allows you to select the utility functions. ═══ 4.1. Action Item File ═══ Surprise...The file menu item allows you to select functions that operate at the file level. The following items may be selected from the File menu: o Open INI File o Backup System INIs o Exit ═══ 4.1.1. Open INI File ═══ Select this menu item to open an existing user extracted or backup INI file. If you attempt to select the current running INI files, open will fail. (If you could open the running system INIs, you could just use COPY to back them up.) ═══ 4.1.2. Backup System INI Files ═══ Select this menu item to backup the running System INI files to files named OS2SV.INI and OS2SYSSV.INI. ═══ 4.1.3. Exit ═══ Select this menu item to exit the utility. ═══ 4.2. Action Item Appls/Data ═══ The original intent was to allow free form edit and display of all application, key, and data components. However, I don't think I have the wherewithall to really make that happen. So all you may do is display application and key combinations. The following items may be selected from the Appls/Data menu: o OS2 INI o OS2SYS INI o USER INI ═══ 4.2.1. OS2 INI ═══ This selection allows you to look at all of the application and key names in the running OS2.INI (or equivalent as named on the PROTSHELL statement.) ═══ 4.2.2. OS2SYS INI ═══ This selection allows you to look at all of the application and key names in the running OS2SYS.INI (or equivalent as named on the PROTSHELL statement.) ═══ 4.2.3. USER INI ═══ This selection allows you to look at all of the application and key names in any INI file that was created using OS2 profile management calls. The file name must end in .INI . ═══ 4.3. Action Item Grps/Pgms ═══ The Groups and Programs unload/reload functions may be accessed from this menu selection. These functions allow you to extract installed programs from a running INI and reload them to other users' systems. In that way, you can replicate a given installed program environment for any number of users without having to go through a long manual process. You can also run the reload function from a full INI backup file. Just use the OS2SV.INI dataset. The program details selections allow you to edit installed program attributes. (Even some that are not available from the Program Properties selection provided with OS2.) In particular, you may specify start minimized and start maximized for widowed (VIO) programs. You may also elect to have installed programs be invisible to the end user, but actually still reside on the start program list for a group. The following items may be selected from the Grps/Pgms menu: o Extract from system o Reload to system o System program details o User program details ═══ 4.3.1. Extract from system ═══ Use this selection to extract installed programs and groups from your running system and right them to another INI file. The target INI file may be used to reload the extracted groups and program entries to your own or someone else's running system. ═══ 4.3.2. Reload to system ═══ Use this selection to reload to the running INI groups and programs that were previously extracted to user INI files. ═══ 4.3.3. System program details ═══ Use this selection to edit the running system's installed program list. You can specify many things that aren't allowed using the OS2 program properties dialog. ═══ 4.3.4. User program details ═══ Use this selection to edit the program lists of previously created INI extracts and backups. ═══ 4.4. Action Item Colors ═══ The Colors menu selection allows you to select either to backup system colors to OS2CLR.INI or to restore from a OS2CLR.INI or OS2SV.INI backup file. Sorry, but the Colors routines aren't done yet. That's why the action bar selection is disabled. The following items may be selected from the Colors menu: o Backup colors o Restore colors ═══ 4.4.1. Backup Colors ═══ Use this selection to create an OS2CLR.INI backup file containing information from your running system. ═══ 4.4.2. Restore Colors ═══ Use this selection to restore the running system colors from a previously created OS2CLR.INI file. ═══ 4.5. Action Item Help ═══ The Help menu item allows you access to the Help subsystem. This utility provides a full implementation of the OS2 IPF facility. That means that you can get field level help at any time by positioning on the field or menu item an pressing PF1. Extended help may be requested by pressing PF2 at any time. (See Keys help.) The following items may be selected from the Help menu: o Help for help o Extended help o Keys help o Help index o About ═══ 4.5.1. Help for Help ═══ This selection gives you information regarding the use of the help subsystem. ═══ 4.5.2. Extended Help ═══ This selection invokes the help subsystem and will provide general help for the INI File Management Utility. ═══ 4.5.3. Keys Help ═══ This selection will present you with information regarding the use of the keyboard in the INI File Management Utility. ═══ 4.5.4. Help Index ═══ The help information for the INI File Management Utility has been indexed to some extent by topic. This selection will invoke the help subsystem and present that index. ═══ 4.5.5. About ═══ This selection will present a Logo panel that displays the utility version number and generation date. ═══ 5. Dialog Panels ═══ Dialog panels allow you to manipulate the execution of the utility. ═══ 5.1. Group List Display ═══ The group list display panel is used to allow you to choose which group you wish to process. The actual process is either backup to an INI or restore from an INI. The following controls are active in the group list display panel: o Enter o Cancel o Group List ═══ 5.1.1. Enter on Group List ═══ The Enter control may be used to process a selected item in the group list box from the Group List Display Panel. If no group list item is selected, the enter key does nothing. ═══ 5.1.2. Cancel on Group List ═══ The Cancel control will terminate group list processing and return to the calling function without processing the selected group list item from the Group List Display Panel. ═══ 5.1.3. Group List ═══ The group list control enables you to select an installed group to process. You select by clicking on the item you want to select. Double clicking the item performs the function of selecting the item and hitting the Enter control on the Group List Display Panel. ═══ 5.2. Program List Display ═══ The program list display panel is used to allow you to choose one or more programs you wish to process. The actual process is either backup to an INI or restore from an INI. The following controls are active in the program list display panel: o Enter o Cancel o Program List ═══ 5.2.1. Enter on Program List ═══ The Enter control may be used to process the selected item(s) in the program list box from the Program List Display Panel. If no program list item is selected, the enter key does nothing. ═══ 5.2.2. Cancel on Program List ═══ The Cancel control will terminate program list processing and return to the calling function without processing the selected program list item(s) from the Program List Display Panel. ═══ 5.2.3. Program List ═══ The program list control enables you to select installed program(s) to process from the Program List Display Panel. You select by clicking on the item(s) you want to select. Double clicking the item does not perform the function of selecting the item and hitting the Enter control. You must click the Enter control (or press the Enter key.) Clicking on an already selected list item will deselect that item. ═══ 5.3. Open a User INI File ═══ The Open INI dialog panel allows you to specify the target or source user INI file with which to process an extract or reload. You should have a mouse in order to work with this dialog properly. The following controls are active in the Open INI dialog: o Enter o Cancel o INI Name o Drive List o Directory List o File List ═══ 5.3.1. Enter on Open INI File ═══ The Enter control will cause open to process the INI file displayed in the INI Name entry box on the Open INI dialog panel. If the INI Name entry box is empty, the enter key does nothing. ═══ 5.3.2. Cancel on Open INI File ═══ The Cancel control will abort the open process for the INI file displayed in the INI Name entry box on the Open INI dialog panel. If the INI Name entry box is empty, the enter key does nothing. ═══ 5.3.3. File Name on Open INI File ═══ The File Name entry box control specifies the specific file name to open on the Open INI dialog panel. You may input the name manually or use the mouse to select an existing INI file from the File List box. ═══ 5.3.4. Drive List on Open INI File ═══ The drive list control allows you to change the drive to search for or create a user INI file on the Open INI dialog panel. A list of the available drives is displayed. Double clicking an entry in the list changes to the drive that the entry specifies and reloads the directory and file lists for the current directory on that drive. ═══ 5.3.5. Directory List on Open INI File ═══ The directory list control displays the directories that are available from the current directory on the selected drive in the Open INI dialog panel. Double clicking an entry in the directory list makes that directory become the current directory and reloads the file list control box. ═══ 5.3.6. File List on Open INI File ═══ The file list control displays existing INI files in the current working directory of the active drive. Clicking on an item in the file list causes that item to be placed in the INI file name entry box on the Open INI dialog panel. Double clicking on an item in the file list control causes that item to be placed in the INI file name entry box and emulates the Entry control function. ═══ 5.4. Backup System INIs ═══ The backup system INIs dialog allows you to specify the target drive and directory to contain the files OS2SV.INI AND OS2SYSSV.INI. These files will be exact copies of the running system INI files. They will, however, be a little smaller because they will not have incurred update fragmentation. The following controls are active in the backup system INIs dialog: o Enter o Cancel o Drive List o Directory List ═══ 5.4.1. Enter on Backup System INIs ═══ The Enter control will cause backup to create files OS2SV.INI and OS2SYSSV.INI on the drive and the directory selected in the Backup System INIs panel. ═══ 5.4.2. Cancel on Backup System INIs ═══ The Cancel control will exit the backup process without creating INI backups on the drive and the directory selected in the Backup System INIs panel. ═══ 5.4.3. Drive List on Backup System INIs ═══ The drive list control allows you to change the drive on which the files OS2SV.INI and OS2SYSSV.INI will be created in the Backup System INIs panel. You may change to one of the available drives by double clicking its list item. ═══ 5.4.4. Directory List on Backup System INIs ═══ The directory list control allows you to change the current directory on which the files OS2SV.INI and OS2SYSSV.INI will be created in the Backup System INIs panel. You may change to one of the available directories by double clicking its list item. ═══ 5.5. Backup INIs Running ═══ It takes a while to backup the running system INIs using the OS2 profile management calls. I guess this is due to the indexed nature of the data. Whatever, I had to create a separate thread to do the backup so that you wouldn't have to just sit there like a dummy until it got done. The backup INIs running dialog won't talk to you. It listens only for the completion of the thread created for the backup. I'm afraid that I didn't want to spend a lot of time in cosmetic coding, so this dialog (and all the rest in this utility) will not let you minimize the application window. However, there is nothing to keep you from activating another session and doing productive work while the backup is running. As long as the backup running dialog panel is showing, the backup is actually running. This will be evidenced by a lot of disk activity since the profile calls must write very small blocks. ═══ 5.6. About ═══ Since I'm not really sure how much more effort I intend to put into this utility, the About dialog is probably not much more than an ego statement on my part. The version number is usually helpful for problem resolution, but things being what they are, don't expect it to change. The following control is active in the About dialog: o Enter ═══ 5.6.1. Enter on About ═══ The Enter control will exit the About dialog panel. ═══ 5.7. Appl/Data ═══ The Appl/Data dialog is pretty much a limited use item. I had intended to allow you to edit Key/Data information by application name. However, once I got into the mechanics of the data editting function, I realized that it required a lot more work than I ever intend to give to this project. As it stands now, you can display keynames for any given application name. The following controls are active in the appl/data dialog: o Enter o Cancel o Application List o Key List ═══ 5.7.1. Enter on Appl/Data ═══ The Enter control in the Appl/Data panel is really the same as Cancel since the data edit part of this function is not enabled. If you hit Enter, you exit the dialog. ═══ 5.7.2. Cancel on Appl/Data ═══ The Cancel control exits from the Appl/Data panel. ═══ 5.7.3. Application List on Appl/Data ═══ The application list control allows you to select the application name for which you wish to see key names on the Appl/Data panel. By double clicking an item in the application name list, you cause the key name list to be loaded with keynames that belong to the application. ═══ 5.7.4. Key List on Appl/Data ═══ The key list control displays the keys for the application name that was selected on the Appl/Data panel. ═══ 5.8. Installed Program Details ═══ It's funny that the Installed Program Details edit dialog was almost a second thought because it may turn out to be the most useful part of this utility. With this dialog you can change a great many things for an installed program that you can not change through OS2 program properties dialogs. In particular, you can specify that a program entry is invisible on the group list, a program should be started minimized or maximized, and you can set icons for OS2 windowed and full screen entries. Starting programs minimized and maximized works for windowed (VIO) programs and presentation manager programs that do not modifiy system window position and size attributes during program initialization. Icon settings work only for for windowed (VIO) and OS2 fullscreen programs. The icon will only show while the session is minimized. To tell you the truth, I was more than a little surprised that the icon specification is ignored on the group list for the installed program. PoopDoodles! There is are a couple of problems with the program details edit function. See Bugs. The following controls are active in the backup system INIs dialog: o Enter o Cancel o Title o Path o Parms o Directory o Icon o Full Screen o Window o PM o DOS o Visible o Minimize o Maximize o Size o Move o X Position o CX Position o Y Position o CX Position o Environment Strings ═══ 5.8.1. Enter on Program Details ═══ The Enter control in the Program Details panel accepts any changes that you have made to input, check, and radio box controls and writes those changes to the running system, backup or extract INI file that you are processing. ═══ 5.8.2. Cancel on Program Details ═══ The Cancel control in the Program Details panel ignores any changes that you have made to input, check, and radio box controls and returns you to the dialog that called the program details dialog. ═══ 5.8.3. Title on Program Details ═══ The Title input box control in the Program Details panel allows you to change the program title that appears on the group list. ═══ 5.8.4. Path on Program Details ═══ The Path input box control in the Program Details panel allows you to change the path name that will be used to execute the program entry on the group list. ═══ 5.8.5. Parms on Program Details ═══ The Parms input box control in the Program Details panel allows you to change the program parameters that will be passed to the program when it executes. ═══ 5.8.6. Directory on Program Details ═══ The Directory input box control in the Program Details panel allows you to change the directory that will be made current before the specified program is invoked. ═══ 5.8.7. Icon on Program Details ═══ The Icon input box control in the Program Details panel allows you to change the icon that appears when the specified program is minimized. Icon settings work only for for windowed (VIO) and OS2 fullscreen programs. The icon will only show while the session is minimized. To tell you the truth, I was more than a little surprised that the icon specification is ignored on the group list for the installed program. ═══ 5.8.8. Full Screen on Program Details ═══ The Full Screen radio control in the Program Details panel allows you to specify that the program will be invoked as an OS2 full screen application. ═══ 5.8.9. Window on Program Details ═══ The Win radio control in the Program Details panel allows you to specify that the program will be invoked as an OS2 VIO windowed application. ═══ 5.8.10. PM on Program Details ═══ The PM radio control in the Program Details panel allows you to specify that the program will be invoked as an OS2 Presentation Manager application. ═══ 5.8.11. DOS on Program Details ═══ The DOS radio control in the Program Details panel allows you to specify that the program will be invoked as a DOS full screen application. ═══ 5.8.12. Visible on Program Details ═══ The Visible check box control in the Program Details panel allows you to specify that the program should not appear on the group list. This will make the entry un-invokable by the user, but will be available to certain OS2 start session and program calls. It will, of course, be available to this utility for later details editting. ═══ 5.8.13. Minimize on Program Details ═══ The Minimize radio control in the Program Details panel allows you to specify that the program will be invoked as an OS2 icon. Starting programs minimized and maximized works for windowed (VIO) programs and presentation manager programs that do not modifiy system window position and size attributes during program initialization. ═══ 5.8.14. Maximize on Program Details ═══ The Maximize radio control in the Program Details panel allows you to specify that the program will be invoked with size maximized. Starting programs minimized and maximized works for windowed (VIO) programs and presentation manager programs that do not modifiy system window position and size attributes during program initialization. ═══ 5.8.15. Size on Program Details ═══ The Size radio control in the Program Details panel should allow you to specify that the size of the window in which the program will be invoked. It just doesn't seem to work, so I have disabled the control. I would like to hear any suggestions for this specification. The control block is type SWP and has the fields to specify size and location info, but it appears that the program starter function uses the data like XYF_ fields in the start session call. ═══ 5.8.16. Move on Program Details ═══ The Move radio control in the Program Details panel has been disabled because it doesn't work. The the discription for the Size control. ═══ 5.8.17. X on Program Details ═══ The X input box control in the Program Details panel has been disabled because it doesn't work. The the discription for the Size control. ═══ 5.8.18. CX on Program Details ═══ The CX input box control in the Program Details panel has been disabled because it doesn't work. The the discription for the Size control. ═══ 5.8.19. Y on Program Details ═══ The Y input box control in the Program Details panel has been disabled because it doesn't work. The the discription for the Size control. ═══ 5.8.20. CY on Program Details ═══ The CY input box control in the Program Details panel has been disabled because it doesn't work. The the discription for the Size control. ═══ 5.8.21. Environment Strings on Program Details ═══ The Environment String combo box control in the Program Details panel provides a way for you to modify the environmental variables that will be available to the program when it is executed. PoopDoodles! There is a problem with environmental string handling. See Bugs. You can input a new environmental string into the edit portion of the combo box. Press ALT-Insert to add the string to the stored environmental strings. You can delete an existing environmental string by loading that string into the edit portion of the combo box (use arrow keys or click on a list item) and pressing ALT-Delete. You can edit an existing environmental string by loading it into the edit portion of the combo box, using normal key edits, adding it to the list portion of the combo box, and going back to delete the original item. You are not allowed to add duplicate strings to the environment string list. ═══ 6. Help for Key Assignments ═══ The list of keys is arranged in groups. ACCELERATOR KEYS F3 Exit program Program Details Environment Edit Keys ALT-Insert Add contents of Combo Edit Box to Environment List ALT-Delete Delete contents of Combo Edit Box from Environment List HELP KEYS F1 Get help F2 Get extended help (from within any help window) Alt+F4 End help F9 Go to a list of keys (from within any help window) F11 Go to the help index (from within any help window) Esc Previous Help Panel, or End help if only one panel Alt+F6 Go to/from help and programs Shift+F10 Get help for help SYSTEM KEYS Alt+F6 Switch to the next windowed program Alt+Esc Switch to the next program, including full-screen programs Ctrl+Esc Switch to the Task List WINDOW KEYS F3 Close a window F10 Go to/from the action bar Arrow keys Move among choices End Go to the last choice in a pull-down Esc Cancel a pull-down or the system menu Home Go to the first choice in a pull-down PgUp Scroll the contents of the window up one page PgDn Scroll the contents of the window down one page Underlined letter Move among the choices on the action bar and pull-downs Alt+F10 Go to/from the action bar Alt+F4 or F3 Close the window Alt+F5 Restore the window Alt+F7 Move the window Alt+F8 Size the window Alt+F9 Minimize the window Alt+F10 Maximize the window Ctrl+PgDn or Shift+F8 Scroll the contents of the window right one page Ctrl+PgUp or Shift+F7 Scroll the contents of the window left one page Shift+Esc or Alt+Spacebar Go to/from the system menu Shift+Esc or Alt Go to/from the system menu of a text window