我基本上试图在perl中查询进程的私有工作集 I have already refereed this post. 该解决方案在win8 / 8.1上运行良好,但由于某种原因,以下行在win7x64上没有返回任何内容,并且我尝试使用IDProcess而不是Name,它仍然不返回任何进程。
my $proc = $objWMI->ExecQuery("select * from Win32_Process where Name=\'notepad\'");
$objWMI = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2');
$proc= $objWMI->ExecQuery("select * from Win32_PerfRawData_PerfProc_Process where Name=\'notepad\'");
foreach my $process (in($proc))
{
print "abc";
$out = $process->{WorkingSetPrivate};
}
所以这件事不起作用。 在perl中查询进程的私有工作集大小有什么不同的方法吗?
答案 0 :(得分:1)
似乎在Windows 7 64位上性能计数器已损坏。我终于成立了这篇文章Corrupt Performance Counter
所以我以管理员身份启动了cmd并执行了lodctr / R(这基本上重置了你的性能计数器)。在此之后,我终于能够得到这个过程,以下代码完美无缺:)
my $proc = $objWMI->ExecQuery("select * from Win32_PerfRawData_PerfProc_Process where Name=\'notepad\'");