Seite 1 von 2
Kann WinAPI-Funktion nicht aufrufen
Verfasst: 25.11.2004 12:17
von Agent
Moin moin.
Ich hab (mal wieder) ne Frage. Ich hab leider wenig Erfahrung mit der winapi.
Jetzt möchte ich mal auf einfache weise mein Net-Traffic auslesen. Im engl. Forum steht was von netstatisticsget_()...
Hab auf msdn nachgeschaut und mal folgendes auf die schnelle gecodet:
Code: Alles auswählen
*buffer=AllocateMemory(1000)
OpenFile(0,"c:\netnet.dat")
count=0
Repeat
NetStatisticsGet_("","SERVICE_WORKSTATION",0,0,*buffer)
WriteData(*buffer,1000)
count+1
Until count=3
CloseFile(0)
MessageRequester("","fertsch",0)
Das funzt aber nicht. Fehler:
"Die Datei PurebaseicXXXXX.exe ist verknüpft mit dem fehlenden Export-NETAPI32.DLL:NetStatisticsGet"
Schade eigentlich. Muss ich mir die dll besorgen und registrieren???
Oder ist das mehr eine PB-Sache?
Re: Kann WinAPI-Funktion nicht aufrufen
Verfasst: 25.11.2004 12:37
von Danilo
Agent hat geschrieben:Fehler:
"Die Datei PurebaseicXXXXX.exe ist verknüpft mit dem fehlenden Export-NETAPI32.DLL:NetStatisticsGet"
Hast Du auch das richtige OS?
Code: Alles auswählen
Requirements:
Client: Requires Windows XP, Windows 2000 Professional, or Windows NT Workstation.
Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server.
Verfasst: 25.11.2004 13:15
von DrShrek
Hier die Requirements (MSDN October 2001; Platform SDK)
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Unsupported.
Header: Declared in Lmstats.h; include Lm.h.
Library: Use Netapi32.lib.
Verfasst: 25.11.2004 13:56
von freedimension
Wo ist da jetzt der Unterschied zu Danilos geposteten Requirements außer dass dessen ausführlicher sind?
Verfasst: 25.11.2004 15:43
von DrShrek
Muss ich jetzt was dazu sagen?

Nee, mag nicht!
PS: Wer von den Moderatoren will, kann es löschen.

(

)
Verfasst: 25.11.2004 15:51
von Agent
hm.... das ist es wohl.
Auf der Firmen-Rübe hier läuft nur win98. *lol*
Muss ich wohl doch bis zu Hause warten.
Gibts ne Möglichkeit diese Funktionalität auch unter win98 (möglichst alle win-os) zu haben? Net-traffic und co?
Verfasst: 25.11.2004 16:02
von Andreas21

ICh habe WinXP SP1 und bei mir wirt die "c:\netnet.dat" ja erstellt ohne Probleme nur jetzt die Frage die sich mir auf drängt. Die Datei ist mit 3000 0 nicht gerade viel ......... Ich habe doch etwas mehr Traffic
Naja ich werde mal in die MSDN schauen

Verfasst: 25.11.2004 16:39
von Agent
Naja, schön dass das Grundprinzip schonmal bei dir geht
Den buffer hab ich nur für Testzwecke mal klein gehalten. Sollte ja auch nur mal nen Funktionstest werden.
Ich muss das mal auf winxp/2k testen... geht aber erst wenn ich zu Hause bin.
Wollte das eigentlich für alle Win-OS haben, aber die API-Funktion is ja nun nicht für alle....aber vielleicht hat hier jemand noch eine einfachere Lösung die unabhängig vom OS bzw Win funktioniert. Zumindest ist diese hier SEHR einfach.
Verfasst: 26.11.2004 12:04
von Agent
Moin.
Habs eben (hier in der firma) mal auf nem XP Rechner compiled. Bei mir kommt da nix an Traffic rein. *buffer ist leer. Funzt das bei euch echt?
Habs nochmal kurz modifiziert...
Code: Alles auswählen
buffersize=1000
logfile$="c:\nettraffic.dat"
*buffer=AllocateMemory(buffersize)
OpenFile(0,logfile$)
count=0
nettrafficsize=0
MessageRequester("READY?","Press ok to start NetMonitor",0)
Repeat
NetStatisticsGet_("","SERVICE_WORKSTATION",0,0,*buffer)
nettraffic$=PeekS(*buffer)
Debug "'"+nettraffic$+"'"
If Len(nettraffic$)>0 : WriteData(*buffer,buffersize) : nettrafficsize+Len(nettraffic$):EndIf
count+1 ; sicherheitshalber damit nicht endlossschleife
Delay(5)
Until count=1000 Or nettrafficsize>1000
CloseFile(0)
MessageRequester("Done",Str(nettrafficsize)+" Bytes logged in "+logfile$,0)
Verfasst: 26.11.2004 14:42
von stbi
bei den NetApi-Funktionen sollte man immer den Returncode auswerten ...
... bei mir (WinXP Pro SP2) kommt da nämlich RC=50, das heisst "not supported"
vielleicht findest Du das, was Du suchst im englischen Forum unter
http://purebasic.myforums.net/viewtopic ... ht=netstat
Gruß Stefan