|
import win.ui;
import process
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add( )
/*}}*/
//原因是创建任务的时候,会创建多个进程去做其他事情
//但是中途可能会出现几个一直发呆的进程而导致无法创建新的进程
//所以我就想把这些发呆的进程KILL掉
//让新的进程继续开启(限制了进程个数的)
//这里开始都是照搬 carl 的那个 内存帖子里面的
GetProcessMemoryInfo = ::Psapi.api("GetProcessMemoryInfo","int(pointer hProcess,struct& ppsmemCounters,int cb)")
PROCESS_MEMORY_COUNTERS= class{
int cb;
int PageFaultCount;
int PeakWorkingSetSize; //物理内存的最大值
int WorkingSetSize; //物理内存的大小
int QuotaPeakPagedPoolUsage;
int QuotaPagedPoolUsage;
int QuotaPeakNonPagedPoolUsage;
int QuotaNonPagedPoolUsage;
int PagefileUsage; //虚拟内存大小
int PeakPagefileUsage; //虚拟内存的最大值
}
mem=PROCESS_MEMORY_COUNTERS()
prc=process(process.getId())
GetProcessMemoryInfo(prc.handle,mem,raw.sizeof(mem))
var nc1=mem.WorkingSetSize; //获取一次内存做参考
//定时 60秒检测一次内存
tmid = winform.setInterval(
5000/*毫秒*/,
function(hwnd,msg,id,tick){//定时执行代码
nc2=mem.WorkingSetSize;
if(nc1=nc2){
win.msgboxTimeout("马上关闭了","标题",3000)
prc.terminate() //各位拜拜,自杀了
}
nc1=nc2 //否则从新赋值
}
);
//这里写是创建独立程序的自己的代码。。
//这下面没代码了,内存不会增加,我们来测试用,实际请自行修改
win.loopMessage();
|
评分
-
查看全部评分
|