For the current user:
System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles ));
For all users
System.Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles ));
32 bit executable under windows 64 bit for the current user
System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86 ));
For the current user
System.Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86 ));