In meinem Heimnetzwerk habe ich unter anderen einen S0-Datenlogger zur Aufzeichnung
meiner Stromverbräuche eingebunden. Seit nunmehr 5 Jahren lese ich per Datei die darin
gespeicherten Monatsverbräuche ab, übertrage sie in meine Access-Datenbank (Access 2013)
zur weiteren Verarbeitung. Die nachfolgende Routine liefert mir diese Datei.
Private Declare Function URLDownloadToFileA Lib "urlmon" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Private Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFileA(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
'Aufruf:
' Parameter QDatei enthält den Namen der Quelldatei des Logger
' Parameter lw enthält das Ziellaufwerk
' Parameter ZDatei enthält den Namen der Zieldatei
Nun möchte ich den freien Speicherplatz der Karte des Datenloggers auslesen.
Die nachfolgende Routine möchte ich dazu nutzen.
Beim Füllen der Variable DrvPath mit beispielsweise "C:\" erhalte ich alle gewünschten Daten.
Den S0-Datenlogger kann ich jedoch nur über die IP-Nummer ansprechen. Trage ich diese
nun in die Variable ein, so erhalte ich eine Fehlermeldung, die ich nicht deuten kann.
Wie Sie aus der Dateiübertragungs-Routine (oben) ersehen, klappt das dort.
Private Sub Test_Click()
Dim Drv As Object
Dim Fld As Object
Dim fs As Object
Dim DrvPath As String
Dim Letter As String
Dim Total As Double
Dim Free As Double
Dim FreePercent As Double
Dim TotalPercent As Double
Dim i As Integer
DrvPath = "C:\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set Drv = fs.GetDrive(fs.GetDriveName(DrvPath))
If Drv.IsReady Then
Letter = Drv.DriveLetter
Total = Drv.TotalSize
Free = Drv.FreeSpace
MsgBox "Freier Speicher: " & FormatNumber(Free / 1024, 0) & vbCr & _
"Total Speicher: " & FormatNumber(Total / 1024, 0)
End If
End Sub
Was muß ich ändern, damit ich das gewünschte Ergebnis erhalte ?
|