My thanks to all of you for your interest, help and suggestions. I went with Strongm's suggestion and used the GetKeyState API, it worked great. My apps use numerous API calls, somehow I got stuck thinking I must get keyboard input from a form. It is hard to get anything done when you are hopping around on one leg and kicking yourself with the other.
For clarification, many of the folks that use my apps are business managers, and many of them could benefit from a bit more time invested in learning how to use a computer. I have spent far too much time trying to tell someone how to create a shortcut and add a command line argument. The need for these command line arguments are rare, in most cases they are never needed, so it is not a good idea to advertise them unless needed. Now if one of these special situations develops I can tell the user to hold some key combination and start the app. If this is a problem I give up.
I do use INI files, again due to the rare need I did not want to use them for this purpose. Sberthold's interpretation of what is going on was right on the mark.
My apps start from Sub_Main, not a form. I mentioned the splash form as it is quickly displayed and I thought I might be able to trap the needed keys there. Part of the problem with that is the form is displayed for several seconds while a great deal of initialization work is done, and the app will have quickly moved past where the keys needed to to be read. I think I could have worked around the problems with using the form, however using the GetKeyState API from the module works great and is very clean.
Thanks again!