【API】获取系统内存所有状态

SYSTEM_INFO sysInfo = {0};

GetSystemInfo(&sysInfo);

DWORD dwMinAddr = (DWORD)sysInfo.lpMinimumApplicationAddress;
DWORD dwMaxAddr = (DWORD)sysInfo.lpMaximumApplicationAddress;

MEMORY_BASIC_INFORMATION memBase;
int i = 0;

for (dwMinAddr; dwMinAddr < dwMaxAddr;)
{
if (VirtualQuery((LPVOID)dwMinAddr, &memBase, sizeof(memBase)) == sizeof(memBase))
{
wprintf(_T("%d %x %x %d\r\n"),i ++,memBase.BaseAddress, memBase.RegionSize,memBase.AllocationProtect);
}
dwMinAddr += memBase.RegionSize;
}

typedef struct _MEMORY_BASIC_INFORMATION
{
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
DWORD RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION;

原文地址:http://blog.51cto.com/383156647/2068232

时间: 2024-11-08 20:41:47

【API】获取系统内存所有状态的相关文章

C# API 获取系统DPI缩放倍数跟分辨率大小

原文:C# API 获取系统DPI缩放倍数跟分辨率大小 using System; using System.Drawing; using System.Runtime.InteropServices; namespace XYDES { public class PrimaryScreen { #region Win32 API [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr ptr); [DllImport(&

C/C++ Windows API——获取系统指定目录(转)

原文地址:C/C++ Windows API——获取系统指定目录 经测试,在win10 VS2017中用wprintf()输出正常,SHGetSpecialFolderPath函数也正常运行 但是用MinGW(gcc)编译器时,wprintf()函数输出乱码,必须用printf()输出,并且SHGetSpecialFolderPath()运行全部失败 原文地址:https://www.cnblogs.com/jixiaohua/p/12169120.html

[VB.NET]调用API获取/设置键盘按键状态

1.调用GetAsyncKeyState()获取指定按键的状态,GetActiveKey()检索指定范围内的按键状态 2.调用keybd_event()可合成一次击键事件,通常两次击键事件间需要设定时间间隔 3.调用MapVirtualKey()获取指定按键的硬件扫描码,传入keybd_event()第二个参数就可以对DirectInput有效. Public Class ImitateKeyClass Private Declare Sub keybd_event Lib "user32&qu

获取系统的网络状态与无线网的信号强度

一台电脑,有时通过有线网连接网络(调制解调器/局域网),如有网卡也可连接wifi.那么如何获取WLAN是否连接,和相应的信号强度呢? 就以下俩点: 获取电脑连网状态 获取无线网络的信号强度 获取电脑连网状态 在看下文之前,可以浏览:通过InternetGetConnectedState方法对网络状态的获取 如上InternetGetConnectedState方法介绍中 dwReversed必须设置为0 通过输出值lpdwFlags可以获取当前网络连接的信息,通过拼装对比可以得到当前连接的网络类

IOS,中获取系统内存占有率的方法

#import <mach/mach.h> - (float)__getMemoryUsedPer1 { struct mach_task_basic_info info; mach_msg_type_number_t size = sizeof(info); kern_return_t kerr = task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&info, &size); if (kerr ==

Java 获取系统cpu 内存

原文链接:https://blog.csdn.net/CallMeV6/article/details/83176840 说明:获取的数据是操作系统整体的资源占用情况,不是当前 java进程占用的资源 1. 获取系统CPU占用情况 : import java.lang.management.ManagementFactory; import com.sun.management.OperatingSystemMXBean; private static OperatingSystemMXBean

Java中获取系统相关信息——sigar

一.sigar简介 sigar中文名是系统信息收集和报表工具,是一个开源的工具,提供了跨平台的系统信息收集的API,可以和绝大多数操作系统和大多数版本打交道,可以收集的信息包括: 1.操作系统的信息,包括:dataModel.cpuEndian.name.version.arch.machine.description.patchLevel.vendor.vendorVersion.vendorName.vendorCodeName 2.CPU信息,包括:基本信息(vendor.model.mh

Android开发之获取系统所有进程信息。

最近在做一个app,有一个进程管理模块用于管理系统中正在运行的进程,并且可以关闭进程进行加速手机的功能,基本把它实现了出来.界面的效果都是自己写的,虽然有BUG,但是基本上能满足需求,后期我会改进BUG.好了,来看看效果: 1.获取系统的可用内存和总内存. 获取系统内存中应用的信息,需要用到ActivityManager这个类,然而当你用这个类拿数据的时候你会发现,拿到的数据不正确.用这个类的API获取系统的总内存和可用内存会出现数据不正确的情况.除了这个类,Android手机中有文件描述了这些

AHK 获取系统已安装字体列表

AHK 调用API获取系统已安装字体列表代码: DllCall("gdi32\EnumFontFamilies","uint",DllCall("GetDC","uint",0),"uint",0,"uint",RegisterCallback("EnumFontFamilies"),"uint",a_FontList:="")