delphi 获取大于2G的物理内存大小
一般情况下,我们是用GlobalMemoryStatus 来获取物理内存大小的 但该API在物理内存大小超过2G的时候,返回值均为2GB。因此,没有办法获取真实的物理内存大小,所以需要对此进行改进。
定义TMemoryStatusEx结构:
- Type
- TMemoryStatusEx = packed record
- dwLength: DWORD;
- dwMemoryLoad: DWORD;
- ullTotalPhys: Int64;
- ullAvailPhys: Int64;
- ullTotalPageFile: Int64;
- ullAvailPageFile: Int64;
- ullTotalVirtual: Int64;
- ullAvailVirtual: Int64;
- ullAvailExtendedVirtual: Int64;
- end;
- Function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx): BOOL; stdcall; external kernel32;
- MemoryStatusEx.dwLength := SizeOf(MemoryStatusEx);
- GlobalMemoryStatusEx(MemoryStatusEx);
- Memo2.Lines.Add(FormatFloat('#,###', ullTotalPhys) ); //如果真实内存超过4G 会显示真实内存 上限为3.5G。 当然 如果机器为64位会真实显示。
说明:以上环境针对32位操作系统 如果您的操作系统是64位 不会有以上问题
http://blog.csdn.net/genispan/article/details/4350717
delphi 获取大于2G的物理内存大小的更多相关文章
- Delphi获取句柄
Delphi获取句柄发布时间:2011-06-16转载文章请标明出处: http://code.01yun.com/asp0dm/asp0net0dm/20110616/55395.html查找另外一 ...
- Delphi 获取进程路径及命令行参数
Delphi 获取进程路径及命令行参数, 但有的进程获取时会报错,不知为啥 type PVOID64 = UINT64; _UNICODE_STRING = packed record Length ...
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...
- PHP高效获取远程图片尺寸和大小(转)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- PHP高效获取远程图片尺寸和大小
/** * 获取远程图片的宽高和体积大小 * * @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 f ...
- delphi 获取硬盘序列号、cpu号、bios号、网卡号
delphi 获取硬盘 序列号 function GetIdeNum: String; type TSrbIoControl = packed record HeaderLength : ULONG; ...
- HTML页面中JavaScript能获取到的各种屏幕大小信息
在HTML页面中,通过JavaScript代码访问 window 对象,能够获取到很多表征屏幕大小的信息,下面列举并加以区分. window 对象中的屏幕信息 window.innerheight. ...
- Delphi 获取当前鼠标下的控件内容
Delphi 获取当前鼠标下的控件内容 主要函数: GetCursorPos://获取鼠标的位置 WindowFromPoint://获取制定point下的handle GetClassName:// ...
- Delphi获取本机的MAC地址
Delphi获取本机的MAC地址: uses NB30; function GetAdaPterInfo(lana: Char): string; var Adapter: TAdapterS ...
随机推荐
- MouseGestureL.ini shift up/down/left/right edge
MouseGestureL.ini [ShiftPress]Icon=C:\Windows\System32\explorer.exe,6Custom=GetKeyState("Shift& ...
- HTML中DOM核心知识有哪些(带实例超详解)
HTML中DOM核心知识有哪些(带实例超详解) 一.总结: 1.先取html元素,然后再对他进行操作,取的话可以getElementById等 2.操作的话,可以是innerHtml,value等等 ...
- phpStorm怎么解决502 bad gateway(总结整理)
phpStorm怎么解决502 bad gateway(总结整理) 一.总结 1.配置 php解释器. 二.phpStorm解释器与服务器配置(解决502 bad gateway与404 not fo ...
- git基本原理
git基本原理 一.总结 一句话总结:把原理那张图图背下来 1.git中的四大区,除了远程仓库和本地仓库,剩下两个是什么? 解答:工作区和暂存区. 2.git中的四大区(例如远程仓库和本地仓库),他们 ...
- Xcode编译Undefined symbols for architecture xxx 错误总结
可能会遇到这几种错误:Undefined symbols for architecture armv7Undefined symbols for architecture armv7sUndefine ...
- spring data jpa auditing
审计日志,记录实体版本的修改信息,创建时间,修改时间,创建人,修改人等 可以采用切片AOP的方式实现,也可以通过Spring Data JPA的审计功能实现 切片方式 Spring AOP中Point ...
- ubuntu安装docker,docker部署dotnetcore2.0 web应用(三)
我是在本地安装的虚拟机 1.下载ubuntu18.0.4 iso镜像包 2.打开win10自带的Hyper-V管理器 3.创建新的虚拟机,引用ubuntu18.0.4 iso镜像包,一步步安装成功. ...
- Cordova/PhoneGap 安卓开发环境搭建
此文为个人原创作品,如有不正确之处,恳请大家指出,并请您谅解,转载请说明出处. 准备阶段: 必备: JDK(根据自己的开发平台下载相应的安装包,可能需要FQ) Nodejs (根据自己的开发平台下载 ...
- Android能够获取到唯一的设备ID吗?
Android是否有唯一的设备ID,如果有的话,该怎样快速有效获取? Settings.Secure#ANDROID_ID 返回Android ID ,是一个64位的16进制字符串 1 2 3 imp ...
- CUDA atomic原子操作
CUDA的原子操作可以理解为对一个变量进行"读取-修改-写入"这三个操作的一个最小单位的执行过程,这个执行过程不能够再分解为更小的部分,在它执行过程中,不允许其他并行线程对该变量进 ...