簡體   English   中英

WOW64:從32位進程獲取x64%CommonProgramFiles%

[英]WOW64: get x64 %CommonProgramFiles% from 32 bit process

我試過的查詢: ExpandEnvironmentStrings("%COMMONPROGRAMFILES%")GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON)

所有解析為(通常) c:\\\\Program Files (x86)\\\\Common Files來自我的32位應用程序的c:\\\\Program Files (x86)\\\\Common Files 我需要檢查安裝(通常)在64位應用程序的c:\\\\Program Files\\\\Common Files下的文件版本。

在64位操作系統上,ProgramW6432環境變量指向c:\\ program files。 英文版Windows上32位應用程序的完整列表:

  • ProgramFiles => c:\\ program files(x86)
  • ProgramFiles(x86)=> c:\\ program files(x86)
  • ProgramW6432 => c:\\ program files
  • CommonProgramFiles => c:\\ program files(x86)\\ common files
  • CommonProgramFiles(x86)=> c:\\ program files(x86)\\ common files
  • CommonProgramW6432 => c:\\ program files \\ common files

提醒一下:該文件夾不應包含32位程序感興趣的任何內容。 技術上。 請注意文件系統重定向器,它會將文件請求從c:\\ program files重定向到c:\\ program files(x86)。 如果您真的想要訪問該目錄中的文件,則必須使用Wow64DisableWow64FsRedirection()。

%CommonProgramW6432%

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

            return Environment.GetEnvironmentVariable("ProgramFiles");
        }

這是你需要的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM