Where's the program dir?


   I want to get the program files directory. There doesn't seem to be a getprogramdir or an api command which retrieves this info (similiar to accessing the windows directory). Should this be retrieved somewhere in the registry, or is there an api command I should be using to retrieve this?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

It is in the registry.

I.e., on my WinNT4.0 it is in:


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Well, you can use GetDir at the moment your program is started.
GetDir procedure returns the current directory; i guess jexd99 needs the "ProgramDir" (e.g. C:\Programs).
OWASP Proactive Controls

Learn the most important control and control categories that every architect and developer should include in their projects.

GetDir is not proper cause, for example, if you activate a shortcut of the program which is stored in another directory, usually in the Desktop directory, then this is the directory you will get and not the correct location of the exe file.So, julio is correct.

Hohoho, just a sugestion, don't shoot me. I julio is right, but what if you're making a program for Win3.11
Don't know :) I've never worked in Win3.11.
Yeah, Win3.11, some customers still use it. Damn difficult to make two versions of your program, win3.11 and 95/NT.
By the way, In the previous comment I meant : I know that julio is right (forgot the KNOW). This for don't getting the wrong idea. See you!
I'm not a Windows expert, still guess it's a mess to do this job in Win3.11 because Win3.11 has not the concept of ProgramFilesDir itself; in general, if you plan a Win3.11 program, you should "think" win3.11 in order not to get in troubles.

Anyway, just my opinion.
I think, In Win3.11 you should look in one of the windows ini files,if the program was installed properly.
Hi Ronit, correct. But you still have to know the place of that ini file. And who says that the user has installed windows in the windows\ directory?
Then, In 16bit you first call the GetWindowsDir.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.