内存整理其实很简单,就用一个函数EmptyWorkingSet,对每个进程使用这个就可以了
代码如下:
#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <psapi.h>
#pragma comment (lib,"psapi.lib")
BOOL test()
{
HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(SnapShot==NULL)
{
return FALSE;
}
PROCESSENTRY32 ProcessInfo;//声明进程信息变量
ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小
//返回系统中第一个进程的信息
BOOL Status=Process32First(SnapShot,&ProcessInfo);
while(Status)
{
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ProcessInfo.th32ProcessID);
if(hProcess)
{
SetProcessWorkingSetSize(hProcess,0,0);
//内存整理
EmptyWorkingSet(hProcess);
代码如下:
#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <psapi.h>
#pragma comment (lib,"psapi.lib")
BOOL test()
{
HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(SnapShot==NULL)
{
return FALSE;
}
PROCESSENTRY32 ProcessInfo;//声明进程信息变量
ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小
//返回系统中第一个进程的信息
BOOL Status=Process32First(SnapShot,&ProcessInfo);
while(Status)
{
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ProcessInfo.th32ProcessID);
if(hProcess)
{
SetProcessWorkingSetSize(hProcess,0,0);
//内存整理
EmptyWorkingSet(hProcess);