#include
#include
#include
DWORD WINAPI Threadproc(LPVOID LPARAM)
{
HANDLE hsnap;
HANDLE hprocess;
BOOL bmore;
PROCESSENTRY32 pe32;
printf("准备对进程内存释放......\n");
pe32.dwSize=sizeof(pe32);//获取快照下行代码
hsnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获取当前进程快照
bmore=Process32First(hsnap,&pe32);
while(bmore)//条件不用打:
{
hprocess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);//这好像是打开一个进程,以后过驱动会经常用到.
SetProcessWorkingSetSize(hprocess,-1,-1);//这是释放内存.本程序的主角哦
CloseHandle(hprocess);//这是关闭句柄所在的进程
bmore=Process32Next(hsnap,&pe32);//这是查找下一进程
}
CloseHandle(hsnap);//这个我不解释了仔细看上面的代码
int p;
for (int i=1; i<4; i++)
{
p=4-i;
printf("还有%d秒关闭窗口 \n",p);
Sleep(1000);
}
printf("优化完毕");
Sleep(1000);
return 0;
}
///以上是一个子程序,需要在线程里调用的子程序,我是这样理解的.如果理解有错误以后更正
void main()
{
DWORD Threadid;
HANDLE hthread;
printf("开始优化..........\n");
hthread=CreateThread(NULL,NULL,Threadproc,NULL,NULL,&Threadid);//创建线程
WaitForSingleObject(hthread,INFINITE);//等待线程关闭
}