Foro | | | | E.T. | Einfache Cuestión, finde pero no Solución (auch después de 2-stündigem stöbern hier): Kann Yo por Profano-Prog (oder API) determinar, si (todavía) Netzwerk - Verkehr stattfindet (Descargar, Streaming etc.) o NW-Verbindung "schläft" ?? Betrifft sólo el Rechner, en el el Prog se ejecuta, el restliche Verkehr en el NW es (me) egal. |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 22.02.2010 ▲ |
| |
| | | Per WMI (?) el Netzwerkadapter Listen y encima deren Eingang/Ausgang-Status überwachen, si el Netzwerk "schläft"? Posesiones mich con WMI (todavía) no beschäftigen puede, trotz toller Beispiele (u.A. [...] ) de Andreas Miethe. Mach veces start, ausführen, cmd{enter}ipconfig /all{enter} para Adapterlistung. Man podría auch por Hook messen, ¿qué es exactamente solls voluntad? ^ ^ (Yo glaube aber, lo son APIs, auch sin WMI, el dies ausgeben) |
| | | | |
| | | | | | | |
| | E.T. | nmapi.dll >> Nur WIN 2000 ?? Habs bajo XP No se ha encontrado Network Monitor Driver >>> Windows XP Embedded SP2 Feature Pack 2007, kann also auch no en allen Systemen vorrausgesetzt a voluntad...
Muss doch irgendeine (blöde) API geben, el en allen Systemen (de XP) como es !!!
[offtopic]Hab ya eckige Glotzen vom lesen en el I-Net, MSDN,... [/offtopic]
Yo costumbre doch "nur" una Sí oder Nein, si todavía Traffic anliegt. Was como geschaufelt se, me está völlig egal. |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 22.02.2010 ▲ |
| |
| | | nmapi.dll scheint auch no yo en el esta: KompilierenMarcaSeparaciónscheitert.
Lo se ya una API geben, el algo como como aktuelle Gesamtanz. Pakete eingehend/ausgehend pro Adapter zurückliefert, qué entonces "kein Traffic" bedeutet musst Usted aber wahrscheinlich incluso z.B. por "Anz.Pakete en letzte Sekunde" "bestimmten". |
| | | | |
| | | Bekommst Usted lo con el WMI Code Creator [...] heraus?
En me son dieser Code: KompilierenMarcaSeparaciónuna Valor zurück, welcher más rápido steigt, desto aktiver Yo z.B. browse. |
| | | | |
| | Andreas Miethe
| Versuchs veces hiermit. Lo se el número el Vebindungen adecuado. KompilierenMarcaSeparación $H windows.ph
####################
benötigte Dlls laden
Var ole& = ImportDll("ole32.dll","")
Var oleaut& = ImportDll("oleaut32.dll","")
####################
####################
Hilfsfunktionen
Proc StringToBStr
Parameters s$
Var Unicode$ = Space$((Len(S$)*2)+1)
~MultiByteToWideChar(0,0,Addr(S$),-1,Addr(Unicode$),Len(Unicode$))
return SysAllocString(addr(Unicode$))
EndProc
Proc UniToPrf
Parameters U&
Var P$ = Space$(1000)
~WideCharToMultiByte(0,0,U&,-1,Addr(p$),len(P$),0,0)
return SysAllocString(addr(p$))
EndProc
####################
####################
Konstanten
Def &COINIT_MULTITHREAD 0
Def &RPC_C_AUTHN_LEVEL_CONNECT 2
Def &RPC_C_IMP_LEVEL_IDENTIFY 2
Def &EOAC_NONE 0
Def &RPC_C_AUTHN_WINNT 10
Def &RPC_C_AUTHZ_NONE 0
Def &RPC_C_AUTHN_LEVEL_CALL 3
Def &RPC_C_IMP_LEVEL_IMPERSONATE 3
Def &CLSCTX_INPROC_SERVER 1
Def &wbemFlagReturnImmediately 16
Def &wbemFlagForwardOnly 32
Def &IFlags (&wbemFlagReturnImmediately + &wbemFlagForwardOnly)
Def &WBEM_INFINITE $FFFFFFFF
Def $WMISeparator = ","
####################
####################
Strukturen
Struct VARIANT = vt%,
wReserved1%,
wReserved2%,
wReserved3%,
Union#(8)
Struct IWbemServices = QueryInterface&,
AddRef&,
Release&,
OpenNamespace&,
CancelAsyncCall&,
QueryObjectSink&,
GetObject&,
GetObjectAsync&,
PutClass&,
PutClassAsync&,
DeleteClass&,
DeleteClassAsync&,
CreateClassEnum&,
CreateClassEnumAsync&,
PutInstance&,
PutInstanceAsync&,
DeleteInstance&,
DeleteInstanceAsync&,
CreateInstanceEnum&,
CreateInstanceEnumAsync&,
ExecQuery&,
ExecQueryAsync&,
ExecNotificationQuery&,
ExecNotificationQueryAsync&,
ExecMethod&,
ExecMethodAsync&
Struct IWbemLocator = QueryInterface&,
AddRef&,
Release&,
ConnectServer&
Struct IEnumWbemClassObject = QueryInterface&,
AddRef&,
Release&,
Reset&,
Next&,
NextAsync&,
Clone&,
Skip&
Struct IWbemClassObject = QueryInterface&,
AddRef&,
Release&,
GetQualifierSet&,
Get&,
Put&,
Delete&,
GetNames&,
BeginEnumeration&,
Next&,
EndEnumeration&,
GetPropertyQualifierSet&,
Clone&,
GetObjectText&,
SpawnDerivedClass&,
SpawnInstance&,
CompareTo&,
GetPropertyOrigin&,
InheritsFrom&,
GetMethod&,
PutMethod&,
DeleteMethod&,
BeginMethodEnumeration&,
NextMethod&,
EndMethodEnumeration&,
GetMethodQualifierSet&,
GetMethodOrigin&
Struct IUnknown = QueryInterface&,
AddRef&,
Release&
####################
####################
Interfaces
Declare CLSID_IEnumWbemClassObject#
Dim CLSID_IEnumWbemClassObject#,16
Long CLSID_IEnumWbemClassObject#,0 = $1B1CAD8C
Word CLSID_IEnumWbemClassObject#,4 = $2DAB, $11D2
Byte CLSID_IEnumWbemClassObject#,8 = $B6, $04, $00, $10, $4B, $70, $3E, $FD
Declare IID_IEnumWbemClassObject#
Dim IID_IEnumWbemClassObject#,16
Long IID_IEnumWbemClassObject#,0 = $7C857801
Word IID_IEnumWbemClassObject#,4 = $7381, $11CF
Byte IID_IEnumWbemClassObject#,8 = $88, $4D, $00, $AA, $00, $4B, $2E, $24
Declare CLSID_WbemLocator#
Dim CLSID_WbemLocator#,16
Long CLSID_WbemLocator#,0 = $4590F811
Word CLSID_WbemLocator#,4 = $1D3A, $11D0
Byte CLSID_WbemLocator#,8 = $89,$1F,$00,$AA,$00,$4B,$2E,$24
Declare IID_IWbemLocator#
Dim IID_IWbemLocator#,16
Long IID_IWbemLocator#,0 = $DC12A687
Word IID_IWbemLocator#,4 = $737F, $11CF
Byte IID_IWbemLocator#,8 = $88,$4D,$00,$AA,$00,$4B,$2E,$24
Declare IID_IUnknown#
Dim IID_IUnknown#,16
Long IID_IUnknown#,0 = $00000000
Word IID_IUnknown#,4 = $0000, $0000
Byte IID_IUnknown#,8 = $C0, $00, $00, $00, $00, $00, $00, $46
####################
####################
globale Variablen
Declare Variant#,Union#,IWbemLocator#,IWbemServices#,IEnumWbemClassObject#,IWbemClassObject#,IUnknown#
Declare IWbemLocator&,IWbemServices&,IUnknown&,IEnumWbemClassObject&,IWbemClassObject&
Dim Variant#, VARIANT
Union# = Variant# + 8
Dim IWbemLocator#,IWbemLocator
Dim IWbemServices#,IWbemServices
Dim IEnumWbemClassObject#,IEnumWbemClassObject
Dim IWbemClassObject#,IWbemClassObject
Dim IUnknown#,IUnknown
####################
Proc FillInterface
Interface-Strukturen füllen
Parameters IFace#
WhileLoop 0, SizeOf(IFace#)-4,4
Long IFace#,&Loop = &Loop
EndWhile
Endproc
Proc wmi_release
Freigaben
Parameters dummy$
Case IWbemServices& <> 0 : Call(Long(Long(IWbemServices&,0),IWbemServices#.Release&),IWbemServices&)
Case IWbemLocator& <> 0: Call(Long(Long(IWbemLocator&,0),IWbemLocator#.Release&),IWbemLocator&)
Case IEnumWbemClassObject& <> 0 : Call(Long(Long(IEnumWbemClassObject&,0),IEnumWbemClassObject#.Release&),IEnumWbemClassObject&)
Case IWbemClassObject& <> 0: Call(Long(Long(IWbemClassObject&,0),IWbemClassObject#.Release&),IWbemClassObject&)
CoUninitialize()
If Instr(dummy$, "Fehler", 1)
MessageBox("", dummy)
End
EndIf
EndProc
Proc wmi_init
WMI initialisieren
Declare hRes&
Var txt$ = ""
CoInitializeEx(0,&COINIT_MULTITHREAD)
hres& = CoInitializeSecurity(0, -1,0,0,&RPC_C_AUTHN_LEVEL_CONNECT,&RPC_C_IMP_LEVEL_IDENTIFY,0,&EOAC_NONE,0)
If hres& <> 0: txt$="Fehler: nicht möglich CoInitializeSecurity aufzurufen": wmi_release(txt$): EndIf
hres& = CoCreateInstance(CLSID_WbemLocator#,0,&CLSCTX_INPROC_SERVER,IID_IWbemLocator#,addr(IWbemLocator&))
If hres& <> 0: txt$="Fehler: nicht möglich CoCreateInstance aufzurufen": wmi_release(txt$): EndIf €
hRes& = Call(Long(Long(IWbemLocator&,0),IWbemLocator#.ConnectServer&),IWbemLocator&,StringToBStr("root\cimv2"),0,0,0,0,0,0,addr(IWbemServices&))
If hres& <> 0: txt$="Fehler: micht möglich IWbemLocator.ConnectServer aufzurufen": wmi_release(txt$): EndIf
hRes& = Call(Long(Long(IWbemServices&,0),IWbemServices#.QueryInterface&),IWbemServices&,IID_IUnknown#,Addr(IUnknown&))
hres&=CoSetProxyBlanket(IWbemServices&,&RPC_C_AUTHN_WINNT,&RPC_C_AUTHZ_NONE,0,&RPC_C_AUTHN_LEVEL_CALL,&RPC_C_IMP_LEVEL_IMPERSONATE,0,&EOAC_NONE)
If hres& <> 0: txt$="Fehler: nicht möglich CoSetProxyBlanket aufzurufen": wmi_release(txt$): EndIf
hres&=CoSetProxyBlanket(IUnknown&,&RPC_C_AUTHN_WINNT,&RPC_C_AUTHZ_NONE,0,&RPC_C_AUTHN_LEVEL_CALL,&RPC_C_IMP_LEVEL_IMPERSONATE,0,&EOAC_NONE)
If hres& <> 0: txt$="Fehler: nicht möglich CoSetProxyBlanket aufzurufen": wmi_release(txt$): EndIf
Call(Long(Long(IUnknown&,0),IUnknown#.Release&),IUnknown&)
Return txt$
EndProc
Proc wmi_call
WMI-Aufruf
Parameter(3) Select-Anweisung,Auswahl
Rückgabe erfolgt in einer Stringliste
wmi_init()
Parameters Command$,Vars$
Var CountVars& = 1
Var hList& = @create("List",0)
Var RetList& = @create("List",0)
ClearList hList&
Whileloop 1,Len(Vars$)
If Mid$(Vars$,&loop,1)=","
Inc Countvars&
Endif
Endwhile
Whileloop 1,Countvars&
AddString(hList&, Substr$(Vars$,&loop,","))
Endwhile
Declare hres&,uReturn&,nDim&,plUBound&,A$,rgVar&,z&,obj&
Obj& = 1
Call(Long(Long(IWbemServices&,0),IWbemServices#.ExecQuery&),IWbemServices&,StringToBStr("WQL"),StringToBStr(command$),0,0,Addr(IEnumWbemClassObject&))
If hres& <> 0: txt$="Fehler: nicht möglich IWbemServices::ExecQuery aufzurufen": wmi_release(txt$): EndIf
hres& = Call(Long(Long(IEnumWbemClassObject&,0),IEnumWbemClassObject#.Reset&),IEnumWbemClassObject&)
If hres& = 0: txt$="Fehler: nicht möglich IEnumWbemClassObject::aufzurufen": wmi_release(txt$): EndIf
Var NO& = 1
While NO&
hRes& = Call(Long(Long(IEnumWbemClassObject&,0),IEnumWbemClassObject#.Next&),IEnumWbemClassObject&,&WBEM_INFINITE,1,Addr(IWbemClassObject&),Addr(uReturn&))
If hRes& = 0 : NO& = 1 : Endif
If uReturn& <> 0
Whileloop 1,Countvars&
hRes& = Call(Long(Long(IWbemClassObject&,0),IWbemClassObject#.Get&),IWbemClassObject&,StringToBStr(Getstring$(hList&,&loop-1)),0,Variant#,0,0)Select Word(Variant#,0)
Select Variant#.vt%
Caseof 1
AddString(RetList&,"n/a")
Caseof 3
AddString(RetList&,Str$(Long(Union#,0)))
Caseof 8
If Instr("Date",Getstring$(hList&,&loop-1)) Or Instr("Time",Getstring$(hList&,&loop-1))
A$ = String$(UniToPrf(Long(Union#,0)),0)
A$ = Mid$(A$, 7, 2)+"."+Mid$(A$, 5, 2)+"."+Mid$(A$, 1, 4)+" "+Mid$(A$, 9, 2)+":"+Mid$(A$, 11,2)+":"+Mid$(A$, 13,2)
AddString(RetList&,+A$)
else
AddString(RetList&,String$(UniToPrf(Long(Union#,0)),0))
endif
Caseof 11
If byte(Union#,0) = 0
AddString(RetList&,"falsch")
Else
AddString(RetList&,"falsch")
Endif
Caseof 8195
nDim&=SafeArrayGetDim(Long(Union#,0))
A$ = ""
z& = 0
SafeArrayGetUBound(Long(Union#,0), nDim&, Addr(plUbound&))
Whileloop 0,plUbound&
SafeArrayGetElement(Long(Union#,0),addr(&loop), Addr(rgVar&))
A$ = A$ + ","+Str$(rgVar&)
EndWhile
A$ = Mid$(A$,2,Len(A$))
AddString(RetList&,A$)
Caseof 8200
nDim&=SafeArrayGetDim(Long(Union#,0))
A$ = ""
z& = 0
SafeArrayGetUBound(Long(Union#,0), nDim&, Addr(plUbound&))
Whileloop 0,plUbound&
SafeArrayGetElement(Long(Union#,0),addr(&loop), Addr(rgVar&))
A$ = A$ + ","+String$(UnitoPrf(rgVar&),0)
EndWhile
A$ = Mid$(A$,2,Len(A$))
AddString(RetList&,Getstring$(hList&,&loop-1)+" : "+ A$)
endselect
endwhile
Else
NO& = 0
Endif
Inc Obj&
EndWhile
Endif
wmi_release()
Return Retlist&
Endproc
Proc FreeWMI
Dispose Variant#,Union#,IWbemLocator#,IWbemServices#,IEnumWbemClassObject#,IWbemClassObject#,IUnknown#
Endproc
####################
Interface-Strukuren füllen
FillInterface(IWbemLocator#)
FillInterface(IWbemServices#)
FillInterface(IEnumWbemClassObject#)
FillInterface(IWbemClassObject#)
FillInterface(IUnknown#)
####################
###################################################
TEST
###################################################
Decimals 2
windowstyle 527
cls
Proc CountConnections
Var l& = wmi_call("SELECT * FROM Win32_PerfFormattedData_Tcpip_TCPv4","ConnectionsEstablished")
Return Int(Val(GetString$(l&,0)))
EndProc
Print "Verbindungen" ,CountConnections()
Var ende& = 0
Whilenot ende&
waitinput 1000
If %Key = 2
Ende& = 1
endif
Locate 0,0
Print "Verbindungen" ,Coun ctions ()
Endwhile
FreeWMI()
end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 23.02.2010 ▲ |
| |
| | | ¡Hola Andreas, war con Deiner Session algo schiefgelaufen? Wurde como Invitado adecuado.
Für solche Codes, para el el Nity-Anzeige a "blöd" es, empfehle Yo, el Qelltext-Merker [...] - Yo nehme el jedenfalls siempre muy gerne. |
| | | | |
| | E.T. | Irgendwie son el WMI-Gedöns sólo (para mich wirre) Pagar zurück .
@Andreas: Su Code sieht vielerschreckend de, desafortunadamente se ejecuta dieser en me sólo a para ersten Imprimir "Verbindungen" ,CountConnections() , entonces final se el Programa (XProfan 11.2a) .
[offtopic]Man(n) debería simplemente mehr Tiempo haben...[/offtopic] |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 01.03.2010 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |