Beispiel mit NetCtrl.dll und USBCtrl.dll unter VB.Net

Frequently Asked Questions
RobertS
Beiträge: 2
Registriert: Donnerstag 10. September 2009, 16:34

Beispiel mit NetCtrl.dll und USBCtrl.dll unter VB.Net

Beitrag von RobertS » Dienstag 13. Oktober 2009, 17:17

Hallo zusammen,

ich hab eine USB-PwrCtrl und eine Net-PwrCtrl gekauft und installiert.
Der Aufbau der Steckerleisten ist sehr gut und das Beste was ich für das Geld bisher gesehen hab. Da ich die Schaltfunktionen in eigenen Programmen verwenden will, war es wichtig, das der Hersteller ein Interfase zur Verfügung stellt. Die Beispiele zu den Dlls von Anel waren leider nur im etwas altbackenen VB6 codiert. Die Express-Versionen von VB.Net,C#.Net und C++.Net sind da aktuelle und kostenlose Nachfolger.
Mit ein paar weiteren Informationen aus dem Internet war es einfach beide DLL´s in .Net einzubinden und aufzurufen.

Und so läuft es:

USBCtrl.dll in ein Verzeichnis kopieren und mit der "Eingabeaufforderung" im System registrieren.

Regsvr32 c:\Hardware\Steckerleitse\USBCtrl.dll

VB.Net starten, ein neues Projekt anlegen und bei den Projekt-Verweisen die Dll hinzufügen.
Wenn die DLL registriert wurde, findet man sie unter dem COM-Reiter.
Beim laden wird ein Interfase erzeugt und als neue Datei im Projektordner gespeichert.

Interop.USBCtrl.dll

Mit dem Objektbrouser können nun alle Funktionen und Parameter der USBCtrl.dll eingesehen werden.
Das ganze funktioniert genau so mit der NetCtrl.dll, nur ein paar Funktionen haben andere Rückgaben.

Für ein einfaches Testprogramm, kann man nun in der Form1, zwei Buttons und ein Label einfügen, sowie folgenden Code...

Code: Alles auswählen

Imports System.Runtime.InteropServices

Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim vb6_USBClass As New USBCtrl.Ctrl

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        vb6_USBClass.Init()
        Dim usb As Int16 = vb6_USBClass.DevCount
        If usb > 0 Then
            Label1.Text = "USB-PwrCtrl gefunden"
            Button1.Enabled = True
            Button2.Enabled = True
        Else
            Label1.Text = "USB-PwrCtrl nicht gefunden"
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim erg As Short = vb6_USBClass.SwOn(0, 1)
        Label1.Text = "Power ON"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim erg As Short = vb6_USBClass.SwOff(0, 1)
        Label1.Text = "Power OFF"
    End Sub

End Class
Das ausführbare Program beinhaltet dann:

c:\Hardware\Steckerleitse\USBCtrl.dll
c:\Hardware\Steckerleitse\Interop.USBCtrl.dll
c:\Hardware\Steckerleitse\SetPower.Exe


Leider läuft das bisher nur unter XP32 und W2k. Unter Vista läuft bisher nur die USBCtrl.dll und unter Vista64 geht noch gar nichts. Das kann aber auch ein Problem mit den Berechtigungen sein. Ich bin da noch dran...

Hat vielleicht jemand mehr Informationen darüber ???

Grüße
Robert