VB6 / Schalterabfrage über USB

Hallo alle zusammen,
ich suche eine Möglichkeit mit VB6 über eine USB-Schnittstelle einen Schalter bzw. einen Kontaktzustand abzufragen. Also, je nach Kontaktzustand, offen oder geschlossen, wird der Programmablauf, in VB6, beeinflusst.
Ich bin auf jeden Fall für jeden Hinweis dankbar.

Mit freundlichen Grüßen
Detlev

ich suche eine Möglichkeit mit VB6 über eine USB-Schnittstelle
einen Schalter bzw. einen Kontaktzustand abzufragen. Also, je
nach Kontaktzustand, offen oder geschlossen, wird der
Programmablauf, in VB6, beeinflusst.

Hallo Detlev,

was ergab die Eingabe in Suchmaschinen von
vb usb
?

Gruß
Reinhard

Hallo,

ich suche eine Möglichkeit mit VB6 über eine USB-Schnittstelle
einen Schalter bzw. einen Kontaktzustand abzufragen. Also, je
nach Kontaktzustand, offen oder geschlossen, wird der
Programmablauf, in VB6, beeinflusst.

USB ist ja ein serieller Bus, ohne zusätzliche Hardware wird das nicht gehen.

Eine Bastellösung ist mir gerade eingefallen.

Die Taster in einer Maus sind auch nur Schalter. Wenn Du die Kontakte Deines Schalers an die Maus anschließt, hast Du die nötige Elektronik und wie die Maus abgefragt wird ist ja klar.

Gruß Rainer

Hallo Rainer,
irgendwie fällt es mir schwer zu glauben, dass es so was nicht gibt. Klar, ein Schalter pro USB ist wohl zu aufwendig, aber z.B. so eine kleine Elektronik, wo man vielleicht 3 oder 5 Schalter anschließen kann. So was müsste es doch geben, oder?
Auf jeden Fall, Dein Vorschlag mit der Maus ist nicht schlecht. Auf Anhieb fallen mir da aber leider zwei Probleme ein.
1.)Wenn ich eine Maus in ein USB stecke, wird Windows sofort die Maus erkennen. Die Elektronik, die sich als Maus erkennen gibt, müsste irgendwie ausgeschaltet werden.
2.)Du schreibst, dass es ja klar wäre, wie die Schalter der Maus abgefragt werden. Leider muss ich gestehen, dass das für mich nicht klar ist. Ich wäre Dir dankbar, wenn Du mir dabei helfen könntest.

Mit freundlichen Grüßen
Detlev

Hallo Reinhard,
ich habe VB6 und USB gegooglt. Da kommt natürlich einiges raus, aber nicht das was ich eigentlich brauche. Ich kann mir einfach nicht vorstellen, dass ich der einzige bin, der so etwas braucht. Ich bin leider kein Elektronik Freak, der sich so etwas zusammen basteln kann. Das mit der Maus von Rainer ist nicht schlecht (siehe oben), aber das muss man auch programmieren können. Das fällt mir schon etwas schwer.

Mit freundlichen Grüßen
Detlev

Hi Detlev,

irgendwie fällt es mir schwer zu glauben, dass es so was nicht
gibt. Klar, ein Schalter pro USB ist wohl zu aufwendig, aber
z.B. so eine kleine Elektronik, wo man vielleicht 3 oder 5
Schalter anschließen kann. So was müsste es doch geben, oder?

Ja klar. So etwas gibt es. Das ist aber eben zusätzliche Hardware. Ohne Elektronik zwischen dem Schalter und dem USB-Anschluss geht’s aber nicht. Ich hatte gestern schon mal gesucht, das billigste was ich gefunden habe:

http://www.pollin.de/shop/dt/ODI4OTgxOTk-/Bausaetze_…

Da wird dann sicher auch Software dabei sein, wie das Ding anzusteuern ist.

Auf jeden Fall, Dein Vorschlag mit der Maus ist nicht
schlecht. Auf Anhieb fallen mir da aber leider zwei Probleme
ein.
1.)Wenn ich eine Maus in ein USB stecke, wird Windows sofort
die Maus erkennen. Die Elektronik, die sich als Maus erkennen
gibt, müsste irgendwie ausgeschaltet werden.
2.)Du schreibst, dass es ja klar wäre, wie die Schalter der
Maus abgefragt werden. Leider muss ich gestehen, dass das für
mich nicht klar ist. Ich wäre Dir dankbar, wenn Du mir dabei
helfen könntest.

damit das auch funktioniert, wenn das Programm unsichtbar läuft und nicht den Focus hat, würde ich es etwa so machen:

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form\_Load()
 Timer1.Interval = 20
 Timer1.Enabled = True
End Sub

Private Sub Timer1\_Timer()
 Dim erg As String
 If GetAsyncKeyState(1&amp:wink: Then
 erg = "Linke Maustaste ist gedrückt "
 End If
 If GetAsyncKeyState(2&amp:wink: Then
 erg = erg & " Rechte Maustaste ist gedrückt"
 End If
 If erg = "" Then erg = "Keine Maustaste ist gedrückt"
 Me.Caption = erg
End Sub

Gruß Rainer

Hi,

ach ja … Einen Punkt vergessen:

1.)Wenn ich eine Maus in ein USB stecke, wird Windows sofort
die Maus erkennen. Die Elektronik, die sich als Maus erkennen
gibt, müsste irgendwie ausgeschaltet werden.

Die Maus wird vom USB-Anschluss mit Strom versorgt.

http://de.wikipedia.org/w/index.php?title=Datei:USB…

Kontakt 1 und 4 liefern die Spannung. Du musst dur einen der beiden Drähte unterbrechen und einen Schalter dazwischen bauen. Beim USB ist das erlaubt, da geht nichts kaputt. Windows wird sich beim Einschalten aber melden, daß ‚Neue Hardware‘ angeschlossen wurde.

Gruß Rainer

ich habe VB6 und USB gegooglt. Da kommt natürlich einiges
raus, aber nicht das was ich eigentlich brauche. Ich kann mir
einfach nicht vorstellen, dass ich der einzige bin, der so
etwas braucht. Ich bin leider kein Elektronik Freak, der sich
so etwas zusammen basteln kann. Das mit der Maus von Rainer
ist nicht schlecht (siehe oben), aber das muss man auch
programmieren können. Das fällt mir schon etwas schwer.

Hallo Detlev,

ich habe keine Ahnung wie das so mit ner Maus im Detail umgesetzt wird.
Ich sehe das als Hobbybastler. Die Idee mit der Maus eine Maus zu benutzen klingt doch gut.
Es wäre mir zumindest den Test wert.

Also eine alte Kugel-Maus nehmen, zur Not die billigste kaufen.
Die Kugel rausnehmen und auch die drei Laufrädchen „kaputtmachen“.
Dann dürften doch von der Maus zum PC nur noch die Informationen
über linken oder rechten Mausklick übermittelt werden.

So’n ein Klick ist ja m.E. nur das im Moment des Klickens auf
einer Ader 5V anliegen oder die Ader Verbindung zur Masse hat.
Das wertet dann der PC als Klick aus.

Jetzt müßte man nur da deinen Schalter, ggfs. an zwei unterschiedliche
Relais anschließen sodaß jede Schalterstellungsänderung durch
die Relais für den PC einen Mausklick simuliert.

Dazu würde ich hier im Elektronikbrett nachfragen. Ggfs. gibts
da schon einen fertigen Bausatz ohne Mausumweg zu kaufen bei Conrad oder so.

Gruß
Reinhard

Hallo Reinhard,

Jetzt müßte man nur da deinen Schalter, ggfs. an zwei
unterschiedliche
Relais anschließen sodaß jede Schalterstellungsänderung durch
die Relais für den PC einen Mausklick simuliert.

das verstehe ich jetzt nicht. Warum die Relais?
Wegen dem ‚Klick‘? Wenn der Schalter länger zu bleibt, dann lass das VB doch ruhig erfahren, das ist doch auch eine Information.

An einem Notebook sehe ich bei der Lösung mit der Maus noch nicht mal ein Problem, da hat man ja für die Bedienung immer noch das Touchpad. Am ‚normalen‘ PC fehlt dann die Maus. Oder unterstützen die auch mehrere Mäuse? Hab’ ich noch nicht probiert und ich habe auch gerade keine Reservemaus da um das mal zu testen. Das könnte aber sein, am Notebook hat man ja bei Bedarf auch 2 Eingabegeräte, die den selben Mauszeiger steuern. Dann wäre das gar kein Problem, wenn man an der ‚Spezialmaus‘ beide ‚Tasten gleichzeitig drückt‘. Dann ist die normale Bedienung vom ‚Signal‘ für dir Anwendung zu unterscheiden und verursacht keine Probleme. VB ‚sieht‘ ja, ob beide Tasten gleichzeitig gedrückt sind.

Gruß Rainer

Hallo Rainer,

Jetzt müßte man nur da deinen Schalter, ggfs. an zwei
unterschiedliche
Relais anschließen sodaß jede Schalterstellungsänderung durch
die Relais für den PC einen Mausklick simuliert.

das verstehe ich jetzt nicht. Warum die Relais?

Mist, ich hatte vergessen dazuzuschreiben:
"Bitte keine Nachfragen an den Autor, der hat davon gegen Null
tendierende Ahnung. :smile:

PC fehlt dann die Maus. Oder unterstützen die auch mehrere Mäuse?

Ich habe kein Notebook. An meinem PC gibt es noch Ausgänge für Tastatur und Maus, den Parallelport und 2x USB.

Und ja, zwei Mäuse (normal und USB) zu betreiben geht problemlos.
Für meinen Normalbetrieb brauche ich das natürlich nicht.
Ich habe es zufällig getestet bei der Überprüfung meiner alten Mäuse,
welche denn heute mal wieder Lust hat zu funktionieren *gg*

Gruß
Reinhard

Hallo Rainer,
Danke für Deine Tipps. Das mit dem Bausatz kämme nur in Frage, wenn nichts anderes geht. Aber danke dafür.
Deinen Code habe ich erfolgreich getestet, aber die interessanteste Neuigkeit war das mit Pin 1 oder 4 am USB. Wenn ich also einen der beiden Adern kappe, hat die Maus keinen Strom mehr. Das leuchtet mit ein, aber was ich dann ausprobieren muss ist, funktioniert das mit den Schaltern dann noch? Wie sage ich der Anwendung, an welchem USB die Schalter sind? Oder weiß das Windows? Ich werde es testen. Eine alte Maus werde ich noch auftreiben. Ich schreiben Dir Bescheid, kann aber einige Tage dauern.

Mit freundlichen Grüßen
Detlev

Hallo,

aber was ich dann
ausprobieren muss ist, funktioniert das mit den Schaltern dann
noch?

wenn die Maus keine Strom hat? Nein, dann funktioniert die Elektronik ja nicht. Ein Serieller Bus hat nur zwei Leitungen für die Daten, die müssen seriell, also hintereinander übertragen werden. Ob das übertragene Signal die rechte, linkte Maustaste oder auch eine Bewegung anzeigt muss nach einem bestimmten Protokoll verschlüsselt sein. Für einen Mausklick werden also mehrere Bytes an den Rechner übertragen. Welche und in welcher reihenfolge muss die Elektronik wissen und die braucht Strom.

Wie sage ich der Anwendung, an welchem USB die Schalter
sind? Oder weiß das Windows?

An welchem USB ist Windows egal, das fragt das Gerät beim Anschließen was das für Hardware ist und bekommt zur Antwort, eine Maus. Das reicht.

Ich werde es testen. Eine alte
Maus werde ich noch auftreiben. Ich schreiben Dir Bescheid,
kann aber einige Tage dauern.

Klar, ich hab’s nicht eilig. :smile:

Ein ‚Problem‘ ist mir noch eingefallen. Ich fürchte, daß die tasten an Deiner normalen Maus nicht mehr reagieren, wenn an Deiner 2. Maus die Tasten gedrückt sind, also Dein Schalter geschlossen.

Während Du das Programm und die umgebaute Maus nutzt, wirst Du vermutlich nichts anderes mit dem Rechner machen können.

Gruß Rainer