aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 10808|回复: 4

process()函数返回

[复制链接]

3

主题

5

回帖

49

积分

新手入门

积分
49
发表于 2012-3-14 11:32:13 | 显示全部楼层 |阅读模式
io.open();//打开控制台

//读取进程中程序使用内存大小

import process
prcs = process()
io.print(prc);

为什么返回一直显示是null?

56

主题

412

回帖

3788

积分

荣誉会员

积分
3788
发表于 2012-3-14 11:35:34 | 显示全部楼层
因为返回的是 prcs
而你print 的是 prc

3

主题

5

回帖

49

积分

新手入门

积分
49
 楼主| 发表于 2012-3-14 11:46:41 | 显示全部楼层
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()
io.print(raw.sizeof(mem));
for processEntry in process.each( ".*.exe" ) {  
        io.print(processEntry.th32ProcessID);
      prc=process(processEntry.th32ProcessID)
      io.print(prc);
      GetProcessMemoryInfo(prc.handle,mem,raw.sizeof(mem))
      io.print(processEntry.szExeFile + " 内存使用:",mem.WorkingSetSize/1024 ++ "K")
}

前面不好意思,不过这个还是null,就是中间输出的那个prc

56

主题

412

回帖

3788

积分

荣誉会员

积分
3788
发表于 2012-3-14 12:57:58 | 显示全部楼层
本帖最后由 cbtan 于 2012-3-14 12:59 编辑

getMemorySize=function(exefile){//读取进程中程序使用内存大小
    import process
   
    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()
   
for processEntry in process.each(exefile) {  
        prc=process(processEntry.th32ProcessID)
      
try{
            GetProcessMemoryInfo(prc.handle,mem,raw.sizeof(mem))
            io.print(processEntry.szExeFile +
" 内存使用:",mem.WorkingSetSize/1024 ++ "K")
        }
    }
   
}
io.open()
getMemorySize(
".*.exe")

3

主题

5

回帖

49

积分

新手入门

积分
49
 楼主| 发表于 2012-3-14 13:11:43 | 显示全部楼层
那我想问一下,加了个try只是把错误屏蔽了
错误是由于什么原因造成的呢?

点评

你加个判断也行,自己去找找为什么!!  发表于 2012-3-14 13:44
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-10-4 19:47 , Processed in 0.063701 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表