看了很多网页,都没完全的答案,各位有会的吗?菜鸟不懂呀.
解决方案 »
- 用VBA将老师所在行号作为ID号,两两分组,填写到sheet2中的空白单元格中
- 图片加载问题(很奇怪)
- 局域网客户端0.5秒钟刷新一次服务器数据库是否可行?以便及时得到服务器中的新数据并显示在客户端自己的界面上。客户端一共有15个,数据库中的记录2万条左右。
- 语法问题!
- 微软Vista继续支持VBS吗?
- 如果制作进度条?
- 难题!!!!!变速器,能改变系统的时间?有没有办法得到一个不变的时钟变量???
- 实时错误‘91’:对象变量或With变量未设置 怎么修改啊
- 高分!去掉VB菜单选中后的高亮显示
- 如何最小化成一个图标(在右下角)---- 200分
- 如何控制vbs中输出框的位置 和尺寸大小
- 接收不到数据 新手求大虾们支援
顶顶……
If 本楼给分 Then
楼主木有小JJ
End If
Dim i As Integer
Dim mCPU As Variant
Dim u As Variant
Dim s As String
Set mCPU = GetObject("WINMGMTS:{impersonationLevel=impersonate}!root\wmi").ExecQuery("SELECT CurrentTemperature From MSAcpi_ThermalZoneTemperature")
For Each u In mCPU
s = s & u.CurrentTemperature
Next
Set mCPU = Nothing
GetCPUTemp = (s - 2732) / 10
End Function
If 本楼给分 Then
楼主木有小JJ
End If
如何实时获取系统每个进程占用的CPU使用率(这是C++的,有谁把翻译成VB6就好了):
http://tech.ddvip.com/2006-04/11439183602461.html
{
LARGE_INTEGER CreateTime;
DWORD dwUnknown1;
DWORD dwStartAddress;
DWORD StartEIP;
DWORD dwOwnerPID;
DWORD dwThreadId;
DWORD dwCurrentPriority;
DWORD dwBasePriority;
DWORD dwContextSwitches;
DWORD Unknown;
DWORD WaitReason;}THREADINFO, *PTHREADINFO;typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaxLength;
PWSTR Buffer;
} UNICODE_STRING;typedef struct _PROCESS_INFO
{
DWORD dwOffset;
DWORD dwThreadsCount;
DWORD dwUnused1[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;DWORD dwBasePriority;
DWORD dwProcessID;
DWORD dwParentProcessId;
DWORD dwHandleCount;
DWORD dwUnused3[2];DWORD dwVirtualBytesPeak;
DWORD dwVirtualBytes;
ULONG dwPageFaults;
DWORD dwWorkingSetPeak;
DWORD dwWorkingSet;
DWORD dwQuotaPeakPagedPoolUsage;
DWORD dwQuotaPagedPoolUsage;
DWORD dwQuotaPeakNonPagedPoolUsage;
DWORD dwQuotaNonPagedPoolUsage;
DWORD dwPageFileUsage;
DWORD dwPageFileUsagePeak;DWORD dCommitCharge;
THREADINFO ThreadSysInfo[1];} PROCESSINFO, *PPROCESSINFO;函数定义:int Button2Click(int id);//参数是进程ID函数实体:
int Button2Click(int id)
{
int cpuusage;
PVOID pProcInfo = NULL;
DWORD dwInfoSize = 0x20000;
PPROCESSINFO pProcessInfo;
DWORD dwWorkingSet;
long ( __stdcall *NtQuerySystemInformation )( DWORD, PVOID, DWORD, DWORD );
static __int64 LastTotalProcessCPUUsage = 0;
static __int64 LastCurrentProcessCPUUsage = 0;int CurrentDelta;
int TotalDelta;__int64 TotalProcessCPUUsage = 0;
__int64 CurrentProcessCPUUsage = 0;/////////////////////////////////pProcInfo = (PVOID)(new byte[dwInfoSize]);NtQuerySystemInformation = (long(__stdcall*)(DWORD,PVOID,DWORD,DWORD))
GetProcAddress( GetModuleHandle( "ntdll.dll" ),"NtQuerySystemInformation" );NtQuerySystemInformation(5,pProcInfo,dwInfoSize,0);pProcessInfo = (PPROCESSINFO)pProcInfo;do
{
TotalProcessCPUUsage += (__int64)pProcessInfo->KernelTime.QuadPart + (__int64)pProcessInfo->UserTime.QuadPart;if(pProcessInfo->dwProcessID == id)
{
dwWorkingSet = pProcessInfo->dwWorkingSet;
CurrentProcessCPUUsage += (__int64)pProcessInfo->KernelTime.QuadPart + (__int64)pProcessInfo->UserTime.QuadPart;
}/////////
if(pProcessInfo->dwOffset == 0)
{
break;
}pProcessInfo = (PPROCESSINFO)((byte*)pProcessInfo + pProcessInfo->dwOffset);
}
while(true);TotalDelta = TotalProcessCPUUsage - LastTotalProcessCPUUsage;
CurrentDelta = CurrentProcessCPUUsage - LastCurrentProcessCPUUsage;if(TotalDelta != 0)
cpuusage = 100 * CurrentDelta / TotalDelta;//this->Caption = "CPU = " + IntToStr(100 * CurrentDelta / TotalDelta) +
//"Memory = "+ IntToStr(dwWorkingSet / 1024) " K";LastTotalProcessCPUUsage = TotalProcessCPUUsage;
LastCurrentProcessCPUUsage = CurrentProcessCPUUsage;delete[] pProcInfo;
return cpuusage;}
控制台调用:
int main(void)
{
while(true)
{
int s = Button2Click(0);//在此把进程ID作为参数传入
printf("%d\n",s);
Sleep(1000);
}
return 0;
}