Im
Beitrag #2 sind die 4 benötigten VBS-Skripte:
Sub GetHostname()
Function FindHostname(sline)
Function FileExist(Path)
Sub FileDel(Path)
Im
Beitrag #3 ist eine im Detail verbesserte Version des Sub GetHostname()
Alle 4 Skripte werden benötigt und müssen in der HMI-Projektierung unter "Skripte" angelegt werden.
GetHostname und FindHostname solltest Du umbenennen, z.B. GetSDfree und Findfreebytes, und für den Dir-Befehl anpassen.
Dann brauchst Du noch eine panelinterne HMI-Variable "_System\!_RT-Sim_!" ( SmartTags("_System\!_RT-Sim_!") ), damit die Skripte auf einem Comfort Panel, aber auch in einer Simulation auf einem PC funktionieren.
Siehe in die
VBS-FAQ, wie der HMI-Variable beim Runtime-Start ein passender Wert 0 oder 1 zugewiesen wird. In der FAQ heißt die Variable "_System\!_OS_is_PC_!"
Code:
' Runtime läuft auf einem PC?
Dim fso
On Error Resume Next 'Runtime Errors ignorieren und keine Systemmeldung!
Set fso = CreateObject("filectl.filesystem") 'erzeugt auf PC einen Runtime Error, auf WinCE Panel kein Fehler
If Err.Number <> 0 Then
SmartTags("_System\!_OS_is_PC_!") = 1 'Runtime läuft auf einem PC (Simulation/Test)
ShowSystemAlarm "O¬ the RT runs on a PC"
End If
Err.Clear
Als Trigger für die Ausführung des Skriptes GetHostname bzw. GetSDfree kannst Du das Klicken eines Buttons oder Bild aufgebaut eines Info-Bildes verwenden. Dann wird das Skript dann ausgeführt, wenn sich jemand für die Größe des freien Speichers der SD-Karte interessiert. Beim Comfort Panel ist während der Skriptausführung wahrscheinlich ganz kurz der Command Prompt zu sehen. Interessant zu wissen wäre, wie die Ausgabe des Dir-Befehls lautet, wenn gar keine SD-Karte gesteckt ist - das kannst Du uns mal mitteilen.
PS: Bei den Skripten müssen die [.COLOR...]-Tags entfernt werden, die waren nur fürs Forum, werden im jetzigen Forum aber nicht mehr unterstützt.
Harald