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! :lol:
PS: Wer von den Moderatoren will, kann es löschen. :cry: ( :lol: )

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 :roll:

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 ... :roll:
... 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