function IsWin64: Boolean;
var
Kernel32Handle: THandle;
IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;
GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall;
isWoW64: Bool;
SystemInfo: TSystemInfo;
const
PROCESSOR_ARCHITECTURE_AMD64 = 9;
PROCESSOR_ARCHITECTURE_IA64 = 6;
begin
Kernel32Handle := GetModuleHandle('KERNEL32.DLL');
if Kernel32Handle = 0 then
Kernel32Handle := LoadLibrary('KERNEL32.DLL');
if Kernel32Handle <> 0 then
begin
IsWOW64Process := GetProcAddress(Kernel32Handle,'IsWow64Process');
GetNativeSystemInfo := GetProcAddress(Kernel32Handle,'GetNativeSystemInfo');
if Assigned(IsWow64Process) then
begin
IsWow64Process(GetCurrentProcess,isWoW64);
Result := isWoW64 and Assigned(GetNativeSystemInfo);
if Result then
begin
GetNativeSystemInfo(SystemInfo);
Result := (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) or
(SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64);
end;
end
else Result := False;
end
else Result := False;
end;

*需要自己先判断是否是WINXP/2003之前的系统

function IsWOW64: BOOL;
begin
Result := False;
if GetProcAddress(GetModuleHandle(kernel32), 'IsWow64Process') <> nil then
IsWow64Process(GetCurrentProcess, Result);
end;

这是 XE 以后的代码,表示你的 EXE 是 32位的,环境是 64 位的。
如果你的 EXE 是 64位的,就不用判断了,32位系统,无法运行。

需要注意是GetNativeSystemInfo 函数从Windows XP 开始才有, 而 IsWow64Process 函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 所以使用该函数的时候最好用GetProcAddress 。

检测系统是X86系统,还是X64系统的更多相关文章

  1. 在X64系统中PowerDesigner无法连接MySQL的解决方法

    在MySQL的官网http://dev.mysql.com/downloads/connector/odbc/下载,下个X64版本的,顺带也下了个X86的. 下载完成安装一切顺利(因为是X64系统,自 ...

  2. x64系统的判断和x64下文件和注册表访问的重定向——补记

    原来的地址 x64系统的判断和x64下文件和注册表访问的重定向(1) x64系统的判断和x64下文件和注册表访问的重定向(2) x64系统的判断和x64下文件和注册表访问的重定向(3) 之前在(3)里 ...

  3. Windows7 x64 系统下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境

    1. 打开Nodejs官网http://www.nodejs.org/,点“DOWNLOADS”,点64-bit下载“node-v0.10.33-x64.msi”. 2. 下载好后,双击“node-v ...

  4. VMware Workstation 12 Pro 之安装林耐斯Ubuntu X64系统

    VMware Workstation 12 Pro 之安装林耐斯Ubuntu X64系统... -------------- Linux依照国际音标应该是/'linэks/——类似于“里讷克斯&quo ...

  5. VMware Workstation 12 Pro 之安装林耐斯Debian X64系统

    VMware Workstation 12 Pro 之安装林耐斯Debian X64系统... --------------------- 看到它的LOGO就很喜欢: ---------------- ...

  6. VMware Workstation 12 Pro 之安装林耐斯优麒麟 X64系统

    VMware Workstation 12 Pro 之安装林耐斯优麒麟 X64系统... --------------------- 先去官网下载ISO格式的系统安装包:http://www.ubun ...

  7. VMware Workstation 12 Pro 之安装林耐斯StartOS X64系统

    VMware Workstation 12 Pro 之安装林耐斯StartOS X64系统... ---------------- 先去下载系统暗中包ISO   网址:http://www.xiaza ...

  8. VMware Workstation 12 Pro 之安装林耐斯CentOS X64系统

    VMware Workstation 12 Pro 之安装林耐斯CentOS X64系统... -------------- --------------------------- --------- ...

  9. renren-vue 基于最新node10.8、npm6.2 在win7 x64系统 成功初始化启动

    renren-vue 基于最新node.npm初始化之路 renren-fast 是一个轻量级的 Spring Boot 快速开发平台,能快速开发项目并交付[接私活利器] 完善的 XSS 防范及脚本过 ...

  10. x64系统WSC注册方法

    @echo off title 注册WSC脚本部件 echo. ***************************************** echo. 支持x64系统(请以管理员身份运行) e ...

随机推荐

  1. 一款jquery编写图文下拉二级导航菜单特效

    一款jquery编写图文下拉二级导航菜单特效,效果非常简洁大气,很不错的一款jquery导航菜单特效. 这款jquery特效适用于很多的个人和门户网站. 适用浏览器:IE8.360.FireFox.C ...

  2. vc列表控件的初始化

    void CManageProcessDlg::InitList() {  m_ListProcess.SetExtendedStyle(m_ListProcess.GetExtendedStyle( ...

  3. Django模版进阶

    # -*- coding: utf-8 -*-from django.shortcuts import renderdef home(request): string = "测试" ...

  4. ERROR 23 (HY000) at line 29963: Out of resources when opening file

    在还原数据库时报错,报错信息如下:(库中的表比较多) ERROR 23 (HY000) at line 29963: Out of resources when opening file 解决方法: ...

  5. VS2010性能监视工具

    <编程珠玑(续)>第一章中就介绍了性能监视工具,对于较简单的程序来说,性能监视工具其实可以用变量累加来计算的,但是对于较复杂的程序来说就需要比较好的性能监视工具了.而VS2010提供了一个 ...

  6. mysql数据库本地化操作

    <?php if(!defined('SITE_PATH')){ define('SITE_PATH',dirname(dirname(__FILE__))); } $dbconfig=incl ...

  7. CentOS 6.0 设置IP地址、网关、DNS

    切忌:    在做任何操作之前先备份原文件,我们约定备份文件的名称为:源文件名称+bak,例如原文件名称为:centos.txt    那么备份文件名称为:centos.txtbak 引言:linux ...

  8. Window.Open参数、返回值

    一.window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法: window.open(pageURL,name, ...

  9. UML中的六大关系

    转自:http://www.cnblogs.com/shengtianlong/archive/2010/10/23/1858953.html UML定义的关系主要有六种:依赖.类属.关联.实现.聚合 ...

  10. google calendar

    1. user guide on google https://developers.google.com/google-apps/calendar/instantiate 2. google app ...