INIMAINT Copyright 1992, Carry Associates INIMAINT is an OS/2 PM program to display and manage *.INI files and is distributed by Carry Associates, 124 Doe View Lane, Pound Ridge, NY, 10576. Telephone number is 914-764-4390. The application was written by and is supported by Larry J. Martin. You can obtain Technical support by calling the number above, by leaving an Email on Compuserve for 71435,470 or for the same ID in Section 9, Applications, on the IBMOS2 Compuserve Forum. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING INIMAINT gives you the ability to make virtually any change you want to any of the INI files in your OS/2 environment. Making changes to these files must be done with care because you can do serious and unpredictable damage to your environment. It is STRONGLY SUGGESTED that you insure that you have a usable backup of any INI file that you modify in any way. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING SHAREWARE VERSION The version of INIMAINT that accompanys this documentation is a Shareware version of the program that must be registered with Carry Associates, if you intend to use it except for a brief test. This is not a free program and has been Copyrighted by Carry Associates. It is a violation of the Copyright Laws to use the program without registering and paying for it. The purpose of the unregistered version is ONLY to give users an opportunity to try the program so that they can determine whether they feel the program is worth the $29.95 cost. Unregistered copies of INIMAINT will display an initial dialog that will note the unregistered condition. This dialog will stay on the screen for 15 seconds, unless dismissed by clicking on the OK button. The dialog cannot be dismissed until it has been visible for 3 seconds. In addition, the Title Bar will contain a note that this is an unregistered version of INIMAINT. To obtain your registration identifier please send a check for $29.95 per license for single licenses or $299 for an unlimited copies license made payable to: Carry Associates 124 Doe View Lane Pound Ridge, NY 10576 INIMAINT was written by and is support by: Larry J. Martin Tel: 914-764-4390 Fax: 914-764-0336 Compuserve: 71435,470 Once you have your registration identifier, you can register your copy of INIMAINT by selecting the :hp2.Register Your Copy:ehp2. entry on the Actions Menu. Once you are registered, this entry will no longer appear on the menu. If you want a preregistered copy of INIMAINT, add $7.00 for postage and handling. We will return a diskette with a preregistered copy of INIMAINT, an Install CMD file and an INIMAINT registration ID. The purpose of the ID is to allow preregistered users to download new versions, register and use them until they can obtain a preregistered update. The preregistered version will run as registered without any need to register it on each system. The cost of a preregistered update is $10.00 per license for single licenses or $100.00 for an unlimited copies license, plus $7.00 handling and postage. CURRENT VERSION The enclosed is Version 1.1 of INIMAINT and has the following known problems and/or incomplete features: 1. The Install must be done manually. 2. Long Filenames are not supported. 3. The Initial Dialog cannot be dismissed using the Enter Key, the Mouse must be used. 4. If the Groups Dialog is displayed, a new Group is selected and then OK is selected without actually making any changes to any of the Groups or the Applications in a Group, then the Last Group Displayed is not updated and a subsequent use of the Groups Dialog will revert back to the previous Last Group. REPORTED COMMENTS OR PROBLEMS The following items are problems that have been reported, but cannot be reproduced or comments that I have received from one or more users. Any assistance on the problems or additions to the comments is more than welcome. 1. It was pointed out that although the Cursor in the Value MLE can be an Insert Cursor, there is no way to Insert information. My response is that the only way to change the length of a Value is by using the Replace Value Dialog because changing the expected length of an INI Key Value can cause unusual and unexpected errors. I further responded that the only way to change the cursor is to change it System wide, therefore, changing it only when it is in the MLE is a non trivial problem and I have not attempted to do it even though it leaves the apparent conflict between the appearance of the Cursor and the actual effect when a key is depressed. 2. There have been reports of the MLE not being repainted under OS/2 2.0 after a window that has overlaid it has been dismissed. This does not happen under 1.3 and anyone having the problem should report it to Larry Martin. 3. At least one user is getting an error=10 when attempting to MOVE entries from the OS2SYS.INI file to an INI file on a Diskette. I have not been able to duplicate the error and would like a report from anyone else who has the same error. No dumps are necessary, but a detailed description of any INIMAINT actions taken immediately prior to the attempt to do the MOVE would be helpful. INSTALLATION To install the beta version you must: 1. Copy the INIMAINT.EXE and INICOPY.EXE files to a subdirectory that is included in the PATH environment variable in your CONFIG.SYS. 2. Copy the INIMTAPI.DLL file to a subdirectory that is included in the LIBPATH environment variable in your CONFIG.SYS. 3. Copy the INIHELP.HLP file to a subdirectory that is included in the HELP environment variable in your CONFIG.SYS. 4. You may optionally add INIMAINT to one of the Groups on your Desktop. OPERATION To run INIMAINT simply start it by clicking on the INIMAINT.EXE file or start it from the Group to which it has been added. When INIMAINT first comes up, it will default to editing the INI file that is identified by the system as the user INI file. This is normally C:\OS2\OS2.INI. The name of the current file is always displayed in the TITLE bar of the main window. INIMAINT will locate the window in a default location, but you can move and or size the window as you choose. When INIMAINT is shut down, it will remember the file that it was currently working with as well as the size and location of the window and will restore all of these the next time it is run. MAIN WINDOW DESCRIPTION The Main Window contains three standard child windows. Two of these windows are Listboxes and the third is a MLE. The upper left Listbox will always contain the list of Applications for the current INI file. The upper right Listbox will contain the list of Key Names for the Application that is currently selected in the Application Listbox. The MLE, at the bottom, will contain the hex and ASCII display of the contents of the Key Name that is selected in the Key Listbox. The Cursor will normally be forced to the MLE and the value of the data can be modified by changing either the hex or the ASCII fields of the MLE. The cursor cannot be moved to any portion of the MLE that does not contain data that can be modified and any modification to one type of data, hex or ASCII, will immediately be reflected in the other data. The actual data in the INI file is not changed until the user selects the Update Item on the Action Menu or selects a different Key or Application in the same INI file. At this time, you will be asked to confirm that you want the INI file modified, unless you have turned the warning option off, see below. INIMAINT MENU OPTIONS The various INIMAINT Menu options are: 1. Options will display a Dialog that gives you the ability to: A. Turn off the display of the opening INIMAINT Dialog. B. Turn off the dialogs that will ask for confirmation before Deleting or Modifying the contents of the Current INI file. 2. Groups will display a Dialog that allows you to define and manage the various Groups for this INI file. A bit of explanation is needed here. INIMAINT gives the user the ability to arrange the applications in any INI file into Groups. These Groups can then be used in a number of different INIMAINT areas and greatly ease the problems of handling an INI file with a large number of applications. For example, the OS2.INI file might be divided into two Groups, System and Private. The System Group would be the applications put in the file by OS2 Install and the Private Group would be the remaining applications. More or fewer Groups could be defined. How the user can use Groups within the INIMAINT structure will become more clear below. The Groups Dialog gives the user the ability to define new Groups, to add and delete Applications and Delete Groups. The procedure for establishing a new Group is to select Groups in the Group Dialog, select New Group, and supply a name. Once this is done, the Title of the Dialog will show the current Group and the new Group will be added to the Group Menu. You add Applications to the Group by selecting them in the Listbox. The Listbox will display a specific Group or, if you want to know if there are any Applications that are not in a Group, will display all Groups. A single Application can be a member of up to 5 different Groups at any one time, so it is possible to define overlapping Groups. 3. Size will calculate the minimum amount of Disk Space that would be required for an INI file that contained a selected set of Applications in the current INI file. When this item is selected, the user will be asked what he wants to Size. There will always be two choices, the current file and the currently selected Application. If there are any Groups defined, then they will be included among the selections. If there are more than one Group defined, then there will be an All Groups selection. 4. Actions gives the user the ability to do a number of things: A. Update Current Key will write any changes that have been made to the data in the MLE into the current INI file. B. Delete Application and Delete Key will do the obvious. C. Add Application, Add Key and Replace Key Value are all the same function except entered at different points. Add Application will ask for the name of a new Application to add to the current INI file and then fall through to the Add Key, since the Applications must have at least one Key. The Add Key will ask for the name of the new Key and then fall through to the Replace Key Value, since any Key Name must have an associated Value. This will cause the Key Dialog box to be displayed. The Application and Key Names will be shown at the top of the Dialog, followed by the current length of the data, the ASCII representation of the data and the hex representation of the data. This is the only option that will change the length of a Key Value. Care must be taken when doing this, as many applications depend on knowing the length of the INI items. As the ASCII or hex values are changed, the changes will appear in the other window and the length will be updated. The only exception is when only a single hex digit is entered. The ASCII window is not updated until two hex characters are entered. D. Copy and Move will ask the user to select a Target File for the Copy/Move and will then give the user the same choices as Size above. The selected Applications will then be moved or copied to the Target INI file, which will be created, if it does not exist. This function is done Key by Key, so it will sometimes take some time. However, the PM message queue is not blocked while the move/copy is being done. The actual move or copy is done by a separate program INICOPY, that can also be run as a batch program, see below. 5. New File gives the ability to select a new INI file as the current file. 6. Dump will display a Dialog box with the various OS/2 and INI error codes and a dump of all of the significant INIMAINT variables. Although this Dialog can be displayed at anytime, it is primarily for handling problems and bugs. Anytime there is a problem with INIMAINT, this Dialog will be displayed before INIMAINT terminates. Please use the Write Button to write this information to a file for analysis anytime you receive and error. 7. Exit and Help are self-explanatory. INICOPY INICOPY is the program that is used by INIMAINT to do the actual COPY/MOVE operations. This option is implemented as a separate program so that the user will have the ability to make copies of INI files, including the User and System INI files, at any time during the day. The parameters expected by INICOPY are: Required Parameters: -Ifilename - The fully qualified path and filename of the Source, Input, INI file. -Ofilename - The fully qualified path and filename of the Target, Output, INI file. The Target will be created if it does not exist. Optional Parameters: -Fx - Function requested - Default is C(opy) C = C(opy) M = M(ove) -E - COPY/MOVE Entire INI file - Default -A - COPY/MOVE All Groups -Ggroup - COPY/MOVE Specific Group -Sapp - COPY/MOVE Specific Application