这贴以前就有人问过,你找找吧,网上大把资料.
要得到远程主机的cpu利用率应该在远程主机上有相关服务才行,当然你自己也可以做一个客户端和服务端,用客户端连接到服务端上,然后用服务端来得到数据并发送回客户端。
得到数据可以参见:
BOOL GetProcessTimes(
HANDLE hProcess, // handle to process
LPFILETIME lpCreationTime, // process creation time
LPFILETIME lpExitTime, // process exit time
LPFILETIME lpKernelTime, // process kernel-mode time
LPFILETIME lpUserTime // process user-mode time
);
所有的内核时间+用户时间就是cpu时间,也就是cpu利用率。
当然这里面要得到所有进程的句柄才行,得到所有进程句柄可以参见:
// copy right @ 1995-2001 for bsmith in Zhejiang university
// no use in mechical
HANDLE FSnapshotHandle;
HANDLE hProcess;
PROCESSENTRY32 FProcessEntry32;
BOOL ContinueLoop;
FSnapshotHandle
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize
= sizeof(FProcessEntry32);
ContinueLoop
= Process32First(FSnapshotHandle,& FProcessEntry32);
while (ContinueLoop)
{
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION, FALSE,
FProcessEntry32.th32ProcessID);
CloseHandle(hProcess);
ContinueLoop
= Process32Next(FSnapshotHandle,& FProcessEntry32);
}
CloseHandle(FSnapshotHandle);