Get my exe's directory. WinBase API


/ Published in: C++
Save to your folder(s)

Determine directory where the .exe is running from. Usually it's CWD - but not always, such as MsiExec Custom Actions.

Windows. non-dot.net, with or without MFC.


Copy this code and paste it in your HTML
  1. CString sThisDir; // in atlstr.h
  2.  
  3.  
  4. ::GetModuleFileName( // In WinBase.h.
  5. 0, // retrieve path of .exe file for the current process.
  6. sThisDir.GetBufferSetLength(MAX_PATH),
  7. MAX_PATH);
  8.  
  9. sThisDir.Truncate( sThisDir.ReverseFind('\\') + 1 ); // Chop off the app.exe portion.
  10.  
  11.  
  12. // Alternative to create a myApp.ini file name:
  13.  
  14. CString thisExe; // in atlstr.h
  15.  
  16. ::GetModuleFileName( // In WinBase.h.
  17. 0, // retrieve path of .exe file for the current process.
  18. thisExe.GetBufferSetLength(MAX_PATH),
  19. MAX_PATH);
  20.  
  21. thisExe.Truncate( thisExe.ReverseFind('.') ); // Chop off the .exe.
  22.  
  23. CString iniFile = thisExe;
  24. iniFile.Append( ".ini" ); // Replace .exe with .ini.
  25.  
  26. // I didn't use CString::Replace because there could be multiple embedded ".exe" in the path.
  27. // I found that Vista wanted to store INIs in the Windows directory rather than the CWD.

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.