{"id":597,"date":"2008-05-15T19:12:16","date_gmt":"2008-05-15T19:12:16","guid":{"rendered":"http:\/\/6teen.ru\/?p=602"},"modified":"2008-05-15T19:12:16","modified_gmt":"2008-05-15T19:12:16","slug":"1401","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=597","title":{"rendered":"\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0442.\u0434."},"content":{"rendered":"<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0442.\u0434.<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0442.\u0434.\n\n\u0410\u0432\u0442\u043e\u0440: Vimil Saju\n\n\u0412 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b HKEY_DYN_DATA. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043a\u043b\u044e\u0447\u0435 PerfStats.\n\n\u041e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438,\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:\n\n\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0443\u0442\u0451\u043c \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.\n\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\n\u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430 'PerfStats\\StartStat\\KERNEL\\CPUusage' \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 HKEY_DYN_DATA. \u0434\u0430\u043d\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043b\u044e\u0447\u0435 'PerfStats\\StatData\\KERNEL\\CPUusage' \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.\n\n\u0414\u0430\u043b\u0435\u0435, \u0435\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 On timer, \u0442\u043e \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0435.\n\n\u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438, \u0412\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0439 \u043a\u043b\u044e\u0447 'PerfStats\\StopStat\\KERNEL\\CPUusage'.\u042d\u0442\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a.\n\u0422\u0430\u043a \u0436\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432. \u0412\u0435\u0441\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043a\u043b\u044e\u0447\u0435 PerfStats\\StatData, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0440\u0435\u0435\u0441\u0442\u0440\u0430.\n\n\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 HKEY_DYN_DATA.\n\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434\n\nunit SystemInfo;\n\ninterface\n\nuses\nWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms,\nDialogs,extctrls;\n\ntype TDialupAdapterInfo = record \/\/\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e Dialup \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0435\nalignment:dword;\nbuffer:dword;\nbytesrecieved:dword;\nbytesXmit:dword;\nConnectSpeed:dword;\nCRC:dword;\nframesrecieved:dword;\nFramesXmit:dword;\nFraming:dword;\nrunts:dword;\nOverrun:dword;\ntimeout:dword;\ntotalbytesrecieved:dword;\ntotalbytesXmit:dword;\nend;\n\ntype TKernelInfo = record\nCpuUsagePcnt:dword;\nNumthreads:dword;\nNumVMS:dword;\nend;\n\ntype TVCACHEInfo = record\nccurpages:dword;\ncMacPages:dword;\ncminpages:dword;\nFailedRecycles:dword;\nHits:dword;\nLRUBuffers:dword;\nLRURecycles:dword;\nMisses:dword;\nRandomRecycles:dword;\nend;\n\ntype TFATInfo = record\nBreadsSec:dword;\nBwritesSec:dword;\nDirtydata:dword;\nReadsSec:dword;\nWritesSec:dword;\nend;\n\ntype TVMMInfo = record\nCDiscards:dword;\nCInstancefaults:dword;\nCPageFaults:dword;\ncPageIns:dword;\ncPageOuts:dword;\ncpgCommit:dword;\ncpgDiskCache:dword;\ncpgDiskCacheMac:dword;\ncpgDiskCacheMid:dword;\ncpgDiskCacheMin:dword;\ncpgfree:dword;\n\ncpglocked:dword;\ncpglockedNoncache:dword;\ncpgother:dword;\ncpgsharedpages:dword;\ncpgswap:dword;\ncpgswapfile:dword;\ncpgswapfiledefective:dword;\ncpgswapfileinuse:dword;\nend;\n\ntype\nTSysInfo = class(TComponent)\nprivate\nfDialupAdapterInfo:TDialupAdapterInfo;\nfKernelInfo:TKernelInfo;\nfVCACHEInfo:TVCACHEInfo;\nfFATInfo:TFATInfo;\nfVMMInfo:TVMMInfo;\nftimer:TTimer;\nfupdateinterval:integer;\ntmp:dword;\nvsize:dword;\npkey:hkey;\nregtype:pdword;\nfstopped:boolean;\nprocedure fupdatinginfo(sender:tobject);\nprocedure fsetupdateinterval(aupdateinterval:integer);\nprotected\nfsysInfoChanged:TNotifyEvent;\npublic\nconstructor Create(Aowner:Tcomponent);override;\ndestructor  Destroy;override;\n\nproperty DialupAdapterInfo: TDialupAdapterInfo read fDialupAdapterInfo;\nproperty KernelInfo: TKernelInfo read fKernelInfo;\nproperty VCACHEInfo: TVCACHEInfo read fVCACHEInfo;\nproperty FATInfo: TFATInfo read fFATInfo;\nproperty VMMInfo: TVMMInfo read fVMMInfo;\nprocedure StartRecievingInfo;\nprocedure StopRecievingInfo;\npublished\nproperty SysInfoChanged:TNotifyEvent read fsysInfoChanged write\nfsysInfoChanged;\/\/\u042d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\nproperty UpdateInterval:integer read fupdateInterval write\nfsetupdateinterval default 5000;\nend;\n\nprocedure Register;\n\nimplementation\n\nconstructor TSysInfo.Create(Aowner:Tcomponent);\nbegin\ninherited;\nftimer:=ttimer.Create(self);\nftimer.enabled:=false;\nftimer.OnTimer:=fupdatinginfo;\nvsize:=4;\nfstopped:=true;\nend;\n\nprocedure TSysInfo.startrecievingInfo;\nvar\nres:integer;\nbegin\nres:=RegOpenKeyEx(HKEY_DYN_DATA,'PerfStats\\StartStat',0,KEY_ALL_ACCESS,pkey);\nif res<>0 then\nraise exception.Create('Could not open registry key');\nfstopped:=false;\n\/\/ \u0414\u043b\u044f Dial Up \u0410\u0434\u0430\u043f\u0442\u0435\u0440\u0430\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Alignment',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Buffer',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Framing',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Overrun ',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Timeout',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\CRC',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Runts',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\ConnectSpeed',nil,regtype,@tmp,@vsize);\n\n\/\/ \u0414\u043b\u044f VCACHE\nRegQueryValueEx(pkey,'VCACHE\\LRUBuffers',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\FailedRecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\RandomRecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\LRURecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Misses',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Hits',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMacPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMinPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cCurPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesXmit',nil,regtype,@tmp,@vsize);\n\n\/\/\u0414\u043b\u044f VFAT\n\nRegQueryValueEx(pkey,'VFAT\\DirtyData',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BReadsSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BWritesSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\ReadsSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\WritesSec',nil,regtype,@tmp,@vsize);\n\/\/\u0414\u043b\u044f VMM\n\nRegQueryValueEx(pkey,'VMM\\cpgLockedNoncache',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgCommit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSharedPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMid',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMac',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMin',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcache',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileDefective',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileInUse',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfile',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cDiscards',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageOuts',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageIns',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cInstanceFaults',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageFaults',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgOther',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwap',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgLocked',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgFree',nil,regtype,@tmp,@vsize);\n\/\/\u0414\u043b\u044f KERNEL\nRegQueryValueEx(pkey,'KERNEL\\CPUUsage',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\VMs',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\Threads',nil,regtype,@tmp,@vsize);\nRegCloseKey(pkey);\nftimer.enabled:=true;\nend;\n\nprocedure tsysinfo.fupdatinginfo(sender:tobject);\nvar\nres:integer;\nbegin\nres:=RegOpenKeyEx(HKEY_DYN_DATA,'PerfStats\\StatData',0,KEY_ALL_ACCESS,pkey);\nif res<>0 then\nraise exception.Create('Could not open registry key');\n\/\/\u0414\u043b\u044f Dial Up \u0410\u0434\u0430\u043f\u0442\u0435\u0440\u0430\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Alignment',nil,regtype,@fDialupAdapterInfo.alignment,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Buffer',nil,regtype,@fDialupAdapterInfo.buffer,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Framing',nil,regtype,@fDialupAdapterInfo.framing,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Overrun ',nil,regtype,@fDialupAdapterInfo.overrun,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Timeout',nil,regtype,@fDialupAdapterInfo.timeout,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\CRC',nil,regtype,@fDialupAdapterInfo.crc,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Runts',nil,regtype,@fDialupAdapterInfo.runts,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesXmit',nil,regtype,@fDialupAdapterInfo.framesxmit,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesRecvd',nil,regtype,@fDialupAdapterInfo.framesrecieved,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesXmit',nil,regtype,@fDialupAdapterInfo.bytesxmit,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesRecvd',nil,regtype,@fDialupAdapterInfo.bytesrecieved,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesXmit',nil,regtype,@fDialupAdapterInfo.totalbytesxmit,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesRecvd',nil,regtype,@fDialupAdapterInfo.totalbytesrecieved,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\ConnectSpeed',nil,regtype,@fDialupAdapterInfo.connectspeed,@vsize);\n\/\/ \u0414\u043b\u044f VCACHE\nRegQueryValueEx(pkey,'VCACHE\\LRUBuffers',nil,regtype,@fVCACHEInfo.lrubuffers,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\FailedRecycles',nil,regtype,@fVCACHEInfo.failedrecycles,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\RandomRecycles',nil,regtype,@fVCACHEInfo.randomrecycles,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\LRURecycles',nil,regtype,@fVCACHEInfo.lrurecycles,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Misses',nil,regtype,@fVCACHEInfo.misses,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Hits',nil,regtype,@fVCACHEInfo.hits,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMacPages',nil,regtype,@fVCACHEInfo.cmacpages,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMinPages',nil,regtype,@fVCACHEInfo.cminpages,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cCurPages',nil,regtype,@fVCACHEInfo.ccurpages,@vsize);\n\/\/\u0414\u043b\u044f VFAT\nRegQueryValueEx(pkey,'VFAT\\DirtyData',nil,regtype,@ffatinfo.dirtydata,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BReadsSec',nil,regtype,@ffatinfo.breadssec,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BWritesSec',nil,regtype,@ffatinfo.bwritessec,@vsize);\nRegQueryValueEx(pkey,'VFAT\\ReadsSec',nil,regtype,@ffatinfo.readssec,@vsize);\nRegQueryValueEx(pkey,'VFAT\\WritesSec',nil,regtype,@ffatinfo.writessec,@vsize);\n\/\/\u0414\u043b\u044f VMM\nRegQueryValueEx(pkey,'VMM\\cpgLockedNoncache',nil,regtype,@fvmminfo.cpglockednoncache,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgCommit',nil,regtype,@fvmminfo.cpgcommit,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSharedPages',nil,regtype,@fvmminfo.cpgsharedpages,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMid',nil,regtype,@fvmminfo.cpgdiskcacheMid,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMac',nil,regtype,@fvmminfo.cpgdiskcacheMac,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMin',nil,regtype,@fvmminfo.cpgdiskcacheMin,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcache',nil,regtype,@fvmminfo.cpgdiskcache,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileDefective',nil,regtype,@fvmminfo.cpgswapfiledefective,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileInUse',nil,regtype,@fvmminfo.cpgswapfileinuse,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfile',nil,regtype,@fvmminfo.cpgswapfile,@vsize);\nRegQueryValueEx(pkey,'VMM\\cDiscards',nil,regtype,@fvmminfo.cdiscards,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageOuts',nil,regtype,@fvmminfo.cpageouts,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageIns',nil,regtype,@fvmminfo.cpageins,@vsize);\nRegQueryValueEx(pkey,'VMM\\cInstanceFaults',nil,regtype,@fvmminfo.cinstancefaults,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageFaults',nil,regtype,@fvmminfo.cpagefaults,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgOther',nil,regtype,@fvmminfo.cpgother,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwap',nil,regtype,@fvmminfo.cpgswap,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgLocked',nil,regtype,@fvmminfo.cpglocked,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgFree',nil,regtype,@fvmminfo.cpgfree,@vsize);\n\/\/\u0414\u043b\u044f KERNEL\nRegQueryValueEx(pkey,'KERNEL\\CPUUsage',nil,regtype,@fkernelinfo.cpuusagepcnt,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\VMs',nil,regtype,@fkernelinfo.numvms,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\Threads',nil,regtype,@fkernelinfo.numThreads,@vsize);\nRegCloseKey(pkey);\nif assigned(SysInfoChanged) then\nSysInfoChanged(self);\nend;\n\nprocedure TSysInfo.stoprecievingInfo;\nvar\nres:integer;\nbegin\nres:=RegOpenKeyEx(HKEY_DYN_DATA,'PerfStats\\StopStat',0,KEY_ALL_ACCESS,pkey);\nif not fstopped then\nbegin\nif res<>0 then\nraise exception.Create('Could not open registry key');\n\/\/\u0414\u043b\u044f Dial Up \u0410\u0434\u0430\u043f\u0442\u0435\u0440\u0430\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Alignment',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Buffer',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Framing',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Overrun ',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Timeout',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\CRC',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\Runts',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\FramesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesXmit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\TotalBytesRecvd',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\ConnectSpeed',nil,regtype,@tmp,@vsize);\n\n\/\/ \u0414\u043b\u044f VCACHE\nRegQueryValueEx(pkey,'VCACHE\\LRUBuffers',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\FailedRecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\RandomRecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\LRURecycles',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Misses',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\Hits',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMacPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cMinPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VCACHE\\cCurPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'Dial-Up Adapter\\BytesXmit',nil,regtype,@tmp,@vsize);\n\n\/\/\u0414\u043b\u044f VFAT\nRegQueryValueEx(pkey,'VFAT\\DirtyData',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BReadsSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\BWritesSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\ReadsSec',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VFAT\\WritesSec',nil,regtype,@tmp,@vsize);\n\n\/\/\u0414\u043b\u044f VMM\nRegQueryValueEx(pkey,'VMM\\cpgLockedNoncache',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgCommit',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSharedPages',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMid',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMac',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcacheMin',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgDiskcache',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileDefective',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfileInUse',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwapfile',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cDiscards',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageOuts',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageIns',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cInstanceFaults',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cPageFaults',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgOther',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgSwap',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgLocked',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'VMM\\cpgFree',nil,regtype,@tmp,@vsize);\n\n\/\/\u0414\u043b\u044f KERNEL\nRegQueryValueEx(pkey,'KERNEL\\CPUUsage',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\VMs',nil,regtype,@tmp,@vsize);\nRegQueryValueEx(pkey,'KERNEL\\Threads',nil,regtype,@tmp,@vsize);\n\nRegCloseKey(pkey);\nftimer.enabled:=false;\nfstopped:=true;\nend;\n\nprocedure tsysinfo.fsetupdateinterval(aupdateinterval:integer);\nbegin\nif (ftimer<>nil) and(aupdateinterval>0) then\nbegin\nftimer.Interval:=aupdateinterval;\nfupdateinterval:=aupdateinterval;\nend;\nif (ftimer<>nil) and(aupdateinterval=0) then\nbegin\nftimer.Interval:=500;\nfupdateinterval:=500;\nend;\n\nend;\n\ndestructor tsysinfo.Destroy;\nbegin\nStopRecievingInfo;\nftimer.Destroy;\ninherited;\nend;\n\nprocedure Register;\nbegin\nRegisterComponents('Samples', [TSysInfo]);\nend;\n\n\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0432 \u0444\u0430\u0439\u043b .pas \u0438 \u043f\u0440\u043e\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u0435\u0433\u043e.\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0442.\u0434.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[433,1083],"tags":[1218,1326,1378,1573,1596,1646,1685],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/597"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=597"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/597\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=597"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}