- - PR -
VB6.0でプロセス毎のCPU使用率とメモリ使用量を取得したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-07-01 00:13
システム全体のCPU使用率とメモリ使用量及びプロセスツリーを取得するWinAPIは用意されていますが、プロセス毎のCPU使用率とメモリ使用量を取得するWinAPIを見つけることができませんでした。
WMIを使用すれば、プロセス毎のCPU使用率とメモリ使用量を取得することができるようですが、WMIはドキュメントが少なく調査が困難です。 すみませんが、どなたか教えて下さい。 ちなみに目的は、テスト時にプロセス毎の負荷を計測することにあります。 | ||||
|
投稿日時: 2004-07-01 08:24
Win32APIでは使ったことがありませんが…パフォーマンス モニタ APIは使えませんか? | ||||
|
投稿日時: 2004-07-01 15:40
'-------------------------------------------------------------------
'概要 :メモリの全物理容量と空き容量を取得する '引数 :ServerIP ,string型 , IPアドレス '戻値 :Int((ret - FreeRet) / ret * 100) ,INT型 ,メモリの使用量をパーセンテージで返す(%) '説明 :メモリの使用率を計算してその値を返す(%) '------------------------------------------------------------------- Public Function fncMemory(ServerIP) Dim CsSet As SWbemObjectSet Dim Cs As SWbemObject Dim LocatorM As SWbemLocator Dim ServiceM As SWbemServices Dim ret As Double Dim FreeRet As Double: FreeRet = 0 On Error GoTo ErrHandle Call CursolWait(frmTCSS024) 'カーソルを砂時計にする Set LocatorM = New WbemScripting.SWbemLocator Set ServiceM = LocatorM.ConnectServer(ServerIP, , AccountName, PassWord) Set CsSet = ServiceM.ExecQuery("Select * From Win32_OperatingSystem") 'Sleep 3000 For Each Cs In CsSet ret = Cs.TotalVisibleMemorySize FreeRet = Cs.FreePhysicalMemory Next Set CsSet = Nothing Set Cs = Nothing Set ServiceM = Nothing Set LocatorM = Nothing fncMemory = Int((ret - FreeRet) / ret * 100) Exit Function ErrHandle: ' MsgBox "エラーが発生しました詳細はログファイルを参照ください", vbExclamation, "fncMemory" Call cmLOG.CreateLogFile(cmSYSTEM.cmGetPCName, "TSCC024", "ERR", "fncMemory", "処理途中", "0", CStr(Err.Number), "0", Err.Description) End Function 使えるか分かりませんがどうでしょうかね |
1