4

Although most of the time it's C:\WINDOWS\system32, but sometimes it can be in D partition or alike, how to get it programatically?

wamp
  • 5,789
  • 17
  • 52
  • 82

3 Answers3

7

You can call the Windows API function SHGetFolderPath and ask for CSIDL_SYSTEM.

In Windows Vista and later, you can call SHGetKnownFolderPath and ask for FOLDERID_System. SHGetFolderPath is just a wrapper around this function in later versions of Windows, but if you want your software to run on Windows XP, you'll need to use SHGetFolderPath.

James McNellis
  • 348,265
  • 75
  • 913
  • 977
3
UINT WINAPI GetSystemDirectory(
  _Out_  LPTSTR lpBuffer,
  _In_   UINT uSize
);

You can use this as stated here

Furkat U.
  • 431
  • 5
  • 20
0

GetWindowsDirectory also is a possibility depending on the OS/purpose. Clearly SHGetFolderPath seems to be the MS recommended way

Chubsdad
  • 24,777
  • 4
  • 73
  • 129