Вверх ↑
Главный модератор
Ответов: 2997
Рейтинг: 395
#1: 2011-03-11 11:16:19 ЛС | профиль | цитата
156.66.165.109.donpac.ru писал(а):
информацию о нагруженности удаленного компьютера

Для такой задачи достаточно использовать запросы к WMI удаленного компа.
прототип схемы


Add(Grapher,11972933,483,231)
{
Left=5
Top=30
Width=140
Height=110
Color=0
GridColor=32768
BorderColor=32768
AxisColor=0
MaxValues=138
LeftMargin=0
RightMargin=0
TopMargin=0
BottomMargin=0
}
Add(DoData,14625565,329,140)
{
link(onEventData,6344988:doValue,[])
link(Data,14398977:Var2,[])
}
Add(Hub,2424355,357,231)
{
OutCount=3
link(onEvent1,11972933:doAdd,[])
link(onEvent2,10375253:doPosition,[])
link(onEvent3,11111099:doProcessMessages,[])
}
Add(GetDataEx,14398977,329,123)
{
link(Data,444532:Value,[])
}
Add(Memory,2047635,287,77)
{
@Hint=#2:D2|
}
Add(Hub,2810868,154,56)
{
OutCount=3
link(onEvent1,14625565:doData,[(324,62)(324,146)])
link(onEvent2,1294011:doData,[(282,69)(282,181)])
link(onEvent3,37134:doWork,[])
}
Add(Memory,6344988,371,140)
{
@Hint=#2:N1|
}
Add(GetDataEx,2463154,287,123)
{
link(Data,2047635:Value,[])
}
Add(GProgressBar,10375253,441,238)
{
Left=145
Top=30
Width=10
Height=110
Color=0
Kind=1
LightProgress=65280
DarkProgress=32768
}
Add(VBJScript,37134,203,70)
{
@Hint=#19:Query WMI TimeStamp|
WorkPoints=#6:doWork|
EventPoints=#8:onEvent1|8:onEvent2|
VarPoints=#3:CPU|4:Name|
DataPoints=#8:Computer|
Script=#22:Sub doWork(Data,Index)|22: On Error Resume Next|45: Set objWMIService = GetObject("winmgmts:" _|45: & "{impersonationLevel=impersonate}!\\" _|35: & Sys.Computer & "\root\cimv2")|35: Set object = objWMIService.Get( _|55: "Win32_PerfRawData_PerfOS_Processor.Name='_Total'")|42: Sys.onEvent1 object.PercentProcessorTime|40: Sys.onEvent2 object.TimeStamp_Sys100NS|7:End Sub|0:|28:Function GetVar(Data, Index)|21: On Error Resume Next|18: Select Case Index|12: Case "CPU"|23: On Error Resume Next|78: Set objWMIService = GetObject("winmgmts:\\" & Sys.Computer & "\root\cimv2")|83: Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)|31: For Each objItem in colItems|39: GetVar = objItem.NumberOfProcessors|7: Next|13: Case "Name"|76: Set oWMIService = GetObject("winmgmts:\\" & Sys.Computer & "\root\cimv2")|81: Set colItems = oWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem",,48)|31: For Each objItem in colItems|37: If Not IsEmpty(objItem.Name) Then|26: GetVar = objItem.Name|20: Exit Function |10: End If|7: Next|12: End Select|12:End Function|
UseName=0
link(onEvent1,444532:doValue,[])
link(onEvent2,2047635:doValue,[])
link(Computer,16164956:Text,[])
}
Add(Timer,8924122,112,56)
{
Enable=1
link(onTimer,2810868:doEvent1,[])
}
Add(DoData,1294011,287,175)
{
link(onEventData,1085568:doValue,[])
link(Data,2463154:Var2,[])
}
Add(MathParse,12617443,315,231)
{
DataCount=4
MathStr="(1 - ((%2 - %4)/(%1 - %3)))*100"
ResultType=0
link(onResult,2424355:doEvent1,[])
link(X1,2463154:Var3,[(321,128)])
link(X2,14398977:Var1,[(328,128)])
link(X3,1085568:Value,[])
link(X4,6344988:Value,[(342,224)(377,224)])
}
Add(Memory,444532,329,70)
{
@Hint=#2:N2|
}
Add(Memory,1085568,329,175)
{
@Hint=#2:D1|
}
Add(Label,4151019,245,112)
{
Left=15
Top=10
Width=45
Caption=""
}
Add(Thread,4330057,273,224)
{
link(onSyncExec,12617443:doCalc,[])
}
Add(Application,11111099,399,245)
{
Info="CPU"
Wait=1
}
Add(Edit,16164956,203,21)
{
Left=5
Top=145
Width=85
Text="."
}
Add(FormatStr,5217256,203,112)
{
Mask="%2: %1 processor(s)"
link(onFString,4151019:doText,[])
link(Str1,37134:CPU,[])
link(Str2,37134:Name,[])
}
Add(Button,3669045,21,56)
{
Left=100
Top=145
Caption="Start"
link(onClick,1858676:doEvent1,[])
}
Add(Hub,1858676,63,56)
{
OutCount=3
link(onEvent1,8924122:doTimer,[])
link(onEvent2,5217256:doString,[(104,69)(104,118)])
link(onEvent3,4330057:doStart,[(99,76)(99,230)])
}
Замечание: если откажется компилиться - положить схему в папку HiAsm или поменять строку компилятора на:

"%fname%" "-U%upath%." -Q "-E%opath%
или вот нашел почти рабочую полную версию CPUs
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1cpus_nocomp.rar [10.4KB] [185]