如何根据 Windows 位大小运行 exe?

如何根据 Windows 位大小运行 exe?

我有两个 .exe 文件,我想创建一个程序,使其能够根据 Windows 位大小运行其中一个文件(即,program1.exe如果是 64 位则运行,program2.exe如果是 32 位则运行)。有人知道我应该从哪里开始查找吗?

答案1

您可以使用简单的 Windows Powershell 脚本作为启动器。

您可以通过以下方法区分您的架构和 PS: http://depsharee.blogspot.com/2011/06/how-do-detect-operating-system.html

这个想法是检查 IntPtr 结构的长度是多少字节。4=> 32b,8 => 64b。

如果您确实想要一个 exe,在 DotNet 中,您可以使用此检查来确定它是否为 64b:

BOOL Is64BitWindows() {
 #if defined(_WIN64)
  return TRUE;  // 64-bit programs run only on Win64
 #elif defined(_WIN32)
  // 32-bit programs run on both 32-bit and 64-bit Windows
  // so must sniff
  BOOL f64 = FALSE;
  return IsWow64Process(GetCurrentProcess(), &f64) && f64;
 #else
  return FALSE; // Win64 does not support Win16
 #endif
}

更多信息请点击这里:http://blogs.msdn.com/b/oldnewthing/archive/2005/02/01/364563.aspx

答案2

您可以随时检查%programfiles(x86)%环境变量。如果是 Windows 64 位计算机,它将返回“Program Files (x86)”的路径,如果不是 64 位计算机,它将不会被定义,只会返回“%programfiles(x86)%”。

您可以使用批处理、PS、.Net 或任何您想要的工具来检查这一点。:)

相关内容