[VisualBasic] NUMLOCK blinken lassen

der_hirsch

Ensign
Registriert
Mai 2011
Beiträge
179
Guten Morgen beisammen,

Ich habe folgendes Problem:

Für eine µC-Abfrage via Tastaturcontroller bräuchte ich ein Programm, welches die Numlock-Taste ca 5-7 mal aktiviert und deaktiviert.
Also im Prinzip gehts mir nur darum dass die LED-Blinkt, da ich dieses Signal für den µC abgreife.

Ich hab schon ein Programm, dass sie ein oder ausschaltet, aber bei Blinken bin ich überfordert... VB ist nicht meine Welt :freak:

Danke schonmal im Vorraus.

Hirsch
 
Option Explicit

dim i, s
i = 1
s = ""


Dim oWshShell,tmp
Set oWshShell = WScript.CreateObject("WScript.shell")


do until i > 11
s = s & i & ", "
i = i+1
WScript.Sleep 2000
oWshShell.SendKeys "({NUMLOCK})"
loop
 
Wenn du sie schon ein und ausschalten kannst, brauchst du das ganze doch nur noch mit einem Timer kombinieren der ständig an- und ausschaltet.
 
@ryan: Ne is eher schwierig, hätte gern einfach n kurzes script im Autostart, sodass die led heiter vor sich hin blinkt.

@Zock: Hab das Script von nem Kollegen der jetz in Urlaub is... ich selbst kenn mich damit 0% aus.


Hirsch
 
Aber das blinkt doch schon?

Die Zeile mit i = i+1 ist absolut unnötig.

Der Code lässt sich (falls es nur blinken soll) noch etwas kürzen:
Code:
Option Explicit
Dim oWshShell, i
Set oWshShell = WScript.CreateObject("WScript.shell")

do until i > 11
WScript.Sleep 2000
oWshShell.SendKeys "({NUMLOCK})"
loop
Die Zahl 2000 in der Zeile 6 repräsentiert die Pause zwischen den Anschlägen in ms. (2000ms = 2 Sekunden), die Zahl 11 in der Zeile 4 repräsentiert die Anzahl durchgänge +1 (bei 11 wird 12 mal NumLock gesendet).
 
Zuletzt bearbeitet:
Ich kenne mich zwar mit VB nicht wirklich aus, aber muss die Variable "i" nicht hochgezählt werden, damit die Schleife überhaupt abbricht? Ohne das i = i+1 wäre es doch eine Endlosschleife.
 
Nein, VB macht dies selbstständig (default ist +1). Mit dem i = i + 1 dauert die Schlaufe dann nur halb so lange.

Eigentlich ist es ja vbs, nicht VB, das macht in dieser Hinsicht keinen Unterschied :)
 
Zurück
Oben