返回列表 发帖

如何获得CPU使用率和内存占用率?

本帖最后由 kemyliu 于 2010-1-25 17:16 编辑

请各位达人有谁知道Autoit有什么UDF或函数可以获得computer CPU使用率和内存占用率。
1

评分人数

  • afan

今天很残酷,明天更残酷,但后天很美好

TOP

MemGetStats(),查询内存的可以用这个函数,那再问高手CPU利用率用什么可以得到啊
看别人的问题自己也是一种提高。

TOP

TOP

今天很残酷,明天更残酷,但后天很美好

TOP

freesky的博客里有,去看看吧

TOP

小小玩一下
  1. #include <GUIConstantsEx.au3>
  2. #include <WindowsConstants.au3>
  3. #include <ProgressConstants.au3>

  4. Global $IDLETIME, $KERNELTIME, $USERTIME
  5. Global $StartIdle, $StartKernel, $StartUser
  6. Global $EndIdle, $EndKernel, $EndUser
  7. Global $Timer

  8. $IDLETIME   = DllStructCreate("dword;dword")
  9. $KERNELTIME = DllStructCreate("dword;dword")
  10. $USERTIME   = DllStructCreate("dword;dword")

  11. Opt("GUIOnEventMode",1)
  12. $hGUI = GUICreate("CPUmon", 200, 100, @DesktopWidth-210, @DesktopHeight-140, 0x80800000);, $WS_EX_TOPMOST)
  13. GUISetBkColor(0x000000)
  14. GUISetOnEvent(-3,"Quit")


  15. GUICtrlCreateGraphic(0,0,200,100)
  16. GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x008040)
  17. For $y=25 To 75 Step 25
  18.         GUICtrlSetGraphic(-1, $GUI_GR_MOVE,0,$y)
  19.         GUICtrlSetGraphic(-1, $GUI_GR_LINE, 200, $y)
  20. Next
  21. For $x=25 To 175 Step 25
  22.         GUICtrlSetGraphic(-1, $GUI_GR_MOVE, $x, 0)
  23.         GUICtrlSetGraphic(-1, $GUI_GR_LINE, $x, 100)
  24. Next

  25. $gr = GUICtrlCreateGraphic(0,0,210,100)

  26. $lb=GUICtrlCreateLabel("",0,0,25,25)
  27. GUICtrlSetColor(-1,0x00FF00)

  28. GUISetState()

  29. GUICtrlSetGraphic($gr, $GUI_GR_COLOR, 0x00FF00)

  30. $x=0
  31. $y=0
  32. $dx=200
  33. $dy=100
  34.         GUICtrlSetGraphic($gr, $GUI_GR_MOVE,$dx,$dy)
  35. While 1
  36.         $rCPU = _TimerProc()
  37.         GUICtrlSetData($lb,$rCPU&"%")
  38.         $dx += 2
  39.         $dy = 100-$rCPU
  40.         ;MsgBox(0,"",$dy)
  41.         GUICtrlSetGraphic($gr, $GUI_GR_LINE, $dx, $dy)
  42.         GUICtrlSetGraphic($gr, $GUI_GR_REFRESH)
  43.         $x -= 2
  44.         GUICtrlSetPos($gr, $x, $y)
  45.         Sleep(1000)
  46. WEnd

  47. While 1
  48.     $msg = GUIGetMsg()
  49.     Switch $msg
  50.         Case $GUI_EVENT_CLOSE
  51.             ExitLoop
  52.     EndSwitch
  53. WEnd

  54. Func _TimerProc()
  55.     _GetSysTime($EndIdle, $EndKernel, $EndUser)
  56.     $res = _CPUCalc()
  57.     _GetSysTime($StartIdle, $StartKernel, $StartUser)
  58.         Return $res
  59. EndFunc

  60. Func _GetSysTime(ByRef $sIdle, ByRef $sKernel, ByRef $sUser)
  61.     DllCall("kernel32.dll", "int", "GetSystemTimes", "ptr", DllStructGetPtr($IDLETIME), _
  62.             "ptr", DllStructGetPtr($KERNELTIME), _
  63.             "ptr", DllStructGetPtr($USERTIME))

  64.     $sIdle = DllStructGetData($IDLETIME, 1)
  65.     $sKernel = DllStructGetData($KERNELTIME, 1)
  66.     $sUser = DllStructGetData($USERTIME, 1)
  67. EndFunc   ;==>_GetSysTime

  68. Func _CPUCalc()
  69.     Local $iSystemTime, $iTotal, $iCalcIdle, $iCalcKernel, $iCalcUser
  70.    
  71.     $iCalcIdle   = ($EndIdle - $StartIdle)
  72.     $iCalcKernel = ($EndKernel - $StartKernel)
  73.     $iCalcUser   = ($EndUser - $StartUser)
  74.    
  75.     $iSystemTime = ($iCalcKernel + $iCalcUser)
  76.     $iTotal = Int(($iSystemTime - $iCalcIdle) * (100 / $iSystemTime))
  77.     Return $iTotal
  78. EndFunc

  79. func Quit()
  80.         Exit
  81. EndFunc
复制代码
附件: 您需要登录才可以下载或查看附件。没有帐号?加入
3

评分人数

  • nxbigdaddy

  • pusofalse

  • afan

今天很残酷,明天更残酷,但后天很美好

TOP

小小玩一下
gapkiller 发表于 2010-1-25 16:38



    KAO,帅!

TOP

回复 7# gapkiller

太帅了,不服不行啊,呵呵

TOP

小小玩一下
gapkiller 发表于 2010-1-25 16:38



    - -!原来这东西....这么搞的 =- =

TOP

非常感谢楼上的各位!
看别人的问题自己也是一种提高。

TOP

感谢LS......

TOP

28个字母俺完全都认识,组合在一起么。。。

这个.....

有困难..找民警。
自己知道的,尽量告诉别人,自己不知道的,虚心学习

TOP

小小玩一下
gapkiller 发表于 2010-1-25 16:38



    非常的不错,很好的例子!

TOP

太帅了,不服不行啊,呵呵
llztt 发表于 2010-1-25 16:50



不顶不行!

TOP

返回列表