ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年11月21日(水) 09:17

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2005年12月01日(木) 22:36 
オフライン

登録日時: 2005年7月19日(火) 19:47
記事: 98
住所: 山形県
1 秒毎に CPU 使用率を取得します。

[hide]
コード:
#N88BASIC

Declare Function NtQuerySystemInformation Lib "ntdll.dll" (dwInfoType As DWord,lpStructure As VoidPtr,dwSize As DWord,dwReserved As DWord) As DWord

Type SYSTEM_PERFORMANCE_INFORMATION

	IdleTime As LARGE_INTEGER
	KernelTime As LARGE_INTEGER
	UserTime As LARGE_INTEGER
	Reserved1[2] As LARGE_INTEGER
	Reserved2 As LARGE_INTEGER

End Type

Dim OldSPI As SYSTEM_PERFORMANCE_INFORMATION
Dim SPI As SYSTEM_PERFORMANCE_INFORMATION
Dim OldUserTime As QWord
Dim OldKernelTime As QWord
Dim OldIdleTime As QWord
Dim UserTime As QWord
Dim KernelTime As QWord
Dim IdleTime As QWord
Dim ResultUserTime As QWord
Dim ResultKernelTime As QWord
Dim ResultIdleTime As QWord
Dim ResultSystemTime As QWord
Dim CPUUsage As QWord
Dim Message[256] As Byte

Do

	NtQuerySystemInformation(8,VarPtr(OldSPI),Len(OldSPI),NULL)
	Sleep(1000)
	NtQuerySystemInformation(8,VarPtr(SPI),Len(SPI),NULL)
	memcpy(VarPtr(OldUserTime),VarPtr(OldSPI.UserTime),8)
	memcpy(VarPtr(OldKernelTime),VarPtr(OldSPI.KernelTime),8)
	memcpy(VarPtr(OldIdleTime),VarPtr(OldSPI.IdleTime),8)
	memcpy(VarPtr(UserTime),VarPtr(SPI.UserTime),8)
	memcpy(VarPtr(KernelTime),VarPtr(SPI.KernelTime),8)
	memcpy(VarPtr(IdleTime),VarPtr(SPI.IdleTime),8)
	ResultUserTime=OldUserTime-UserTime
	ResultKernelTime=OldKernelTime-KernelTime
	ResultIdleTime=OldIdleTime-IdleTime
	ResultSystemTime=ResultUserTime+ResultKernelTime
	CPUUsage=(ResultSystemTime-ResultIdleTime)*100/ResultSystemTime
	lstrcpy(Message,"CPU 使用率: ")
	lstrcat(Message,Str$(CPUUsage))
	lstrcat(Message," %")
	SetWindowText(_PromptSys_hWnd,Message)

Loop

[/hide]
件名の通り Windows 2000 / XP 用です。
暇があれば 9x 系にも対応したいと思います。

_________________
Toshi's Recess Room
http://toshi.my.land.to/


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke