_WinAPI_GlobalMemoryStatus
winapi.au3中的函数:_WinAPI_GlobalMemoryStatus代码:#include <WinAPI.au3>
#include <array.au3>
Dim $mem
$mem = _WinAPI_GlobalMemoryStatus()
_ArrayDisplay($mem)
报错: 回复 1# haijie1223
报告'发'哥, 我这里正常, 能显示数组!
XP sp3 + 3.3.7.15 同LZ,,报错。。 正常 3.3.9.4 #include <array.au3>
Dim $mem = MemGetStats()/1024
_ArrayDisplay($mem) win7 32bit+AutoIt3.3.9.0也出错 楼主或许试试其他版 winapi.au3中的函数:_WinAPI_GlobalMemoryStatus
代码:
报错:
haijie1223 发表于 2012-5-22 14:47 http://www.autoitx.com/images/common/back.gif
Win8 + 3.3.9.0-1既不报错,也不显示数组和控制台信息!
3.3.7.15正常。出错原因可以肯定是结构定义出错。看下这个函数内部使用的$tagMEMORYSTATUSEX 结构是否是如下定义:
Global Const $tagMEMORYSTATUSEX = "dword Length;dword MemoryLoad;" & _
"uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & _
"uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual" 回复 9# pusofalse
#include <array.au3>
Global Const $tagMEMORYSTATUSEX = "dword Length;dword MemoryLoad;" & _
"uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & _
"uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"
Local $tMem = DllStructCreate($tagMEMORYSTATUSEX)
Local $iMem = DllStructGetSize($tMem)
DllStructSetData($tMem, 1, $iMem)
DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $tMem)
Local $aMem
$aMem = DllStructGetData($tMem, 2)
$aMem = DllStructGetData($tMem, 3)
$aMem = DllStructGetData($tMem, 4)
$aMem = DllStructGetData($tMem, 5)
$aMem = DllStructGetData($tMem, 6)
$aMem = DllStructGetData($tMem, 7)
$aMem = DllStructGetData($tMem, 8)
_ArrayDisplay($aMem) 回复 10# haijie1223
结构没错,参数传递错了。 将第9行改为:
DllCall("Kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", DllStructGetPtr($tMem)) 回复 11# pusofalse
真可惜我的没错 - -! 回复 1# haijie1223
报告:win7 32bit, 3.3.7.15没有报错,数组显示正常,就是不知道显示的是啥意思? xp3+at3最新版本的应该没错
页:
[1]