2010-03-29 19 views
7

Sorgular Denedim: ExpandEnvironmentStrings("%COMMONPROGRAMFILES%"), GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON).WOW64: x64% CommonProgramFiles% 32 bit işlemden olsun

Tüm 32 bit uygulamasından (genellikle) c:\\Program Files (x86)\\Common Files çözüme. 64-bit bir uygulamanın c:\\Program Files\\Common Files altında (genellikle) yüklü bir dosya sürümünü kontrol etmem gerekiyor.

cevap

15

, c ProgramW6432 ortam değişkeni puan: \ Program dosyaları.

  • ProgramDosyaları => c: \ Program dosyaları (x86)
  • ProgramFiles (x86) => c: Windows'un İngilizce sürümü üzerinde 32 bit uygulaması için tam listesini \ Program Files (x86)
  • ProgramW6432 => c: \ Program files
  • CommonProgramFiles => c: \ Program files (x 86) \ ortak dosyalar
  • CommonProgramFiles (86) => c: \ Program files (x 86) \ ortak dosyalar
  • CommonProgramW6432 => c: \ program dosyaları \ ortak dosyalar

Yalnızca bir hatırlatma: bu klasörün 32 bit programa ilgi çekici hiçbir şey içermemesi gerekir. Teknik olarak. Dosya sistemi yeniden yönlendiricisine dikkat edin, dosya isteklerini c: \ program dosyalarından c: \ program files (x86) dosyasına yönlendirin. Bu dizindeki dosyalara erişmek istediğinizde Wow64DisableWow64FsRedirection() yöntemini kullanmanız gerekir.

+0

Sadece gerekli (64 bit) bir uygulamanın yüklü olduğunu kontrol ediyorum. – peterchen

-1
static string ProgramFilesx86() 
     { 
      if (8 == IntPtr.Size 
       || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) 
      { 
       return Environment.GetEnvironmentVariable("ProgramFiles(x86)"); 
      } 

      return Environment.GetEnvironmentVariable("ProgramFiles"); 
     } 

İhtiyacınız olan bu mu?

+0

Bu kesinlikle C++ gibi görünmüyor. Belki C++/CLI ama tahminimce C# bahsettim. –

+0

Etiketlerde C# gördüm yemin edebilirim. Afedersiniz. –

5

% CommonProgramW6432% 64 bit işletim sistemlerinde

+0

Teşekkürler! Bir şekilde env değişkenleri listesinde bunu özledim. – peterchen

İlgili konular