Hallo
ich bräuchte eine kleine Veränderung meiner Tastatur und zwar sollten
während das VB- Progrämmchen läuft folgende Veränderungen laufen:
Die Taste 7 soll auf s
Taste 8 auf y
Taste 9 auf x
Ist sowas realisierbar???
Problem ist, es gibt twar tools die sowas können, leider hats im Internet bei dem Onlinespiel keine Auswirkung gehabt, sondern nur auf Text. Weiss jmd den Grund dafür???
Nach Abschalten des Programms sollte natürlich wieder alles normal laufen.
Mfg Werner
Hallo Werner,
Ist sowas realisierbar???
in Grenzen ja.
Problem ist, es gibt twar tools die sowas können, leider hats
im Internet bei dem Onlinespiel keine Auswirkung gehabt,
sondern nur auf Text. Weiss jmd den Grund dafür???
Ja. Du hast nicht die Tasten vertauscht, sondern die Zeichen. Allerdings nur für Deine Form. Wenn Du das für ein anderes Fenster bewerkstelligen möchtest, musst Du in den Datenstrom dieses anderen Fensters eingreifen.
Nach Abschalten des Programms sollte natürlich wieder alles
normal laufen.
Klar. Sieh Dir mal bei http://www.activevb.de das Tutorial zu ‚Subclassing‘ an, da wird erklärt, wie so etwas geht.
http://www.activevb.de/tutorials/tut_subcls/subcls.html
Gruß Rainer
Die Taste 7 soll auf s
Taste 8 auf y
Taste 9 auf x
Was wäre wenn du die Tasten gar nicht erst vertauschst, sondern nur wenn die Taste s gedrückt wird, automatisch auch die Taste 7 gedrückt wird?
Wenn das ganze innerhalb deiner Form passiert, kannst du die Events KeyDown etc. verwenden. Willst du das ganze systemweit verwenden, musst du dir ein Programm schreiben, das sagen wir jede Millisekunden die gedrückten Tasten abfragt. Die benötigte Funktion heißt dazu GetAsyncKeyState und auf ActiveVB gibt es ein sehr schönes Codebeispiel dazu:
http://www.activevb.de/tipps/vb6tipps/tipp0070.html
Tastenanschläge kannst du dann einfach mit der Funktion SendKeys durchführen.
z.B.
Private Sub Form\_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA Then
SendKeys "7"
End If
End Sub
mfg dixxi
Hi
deswegen geht das aber trotzdem noch nicht im System oder???
Wie soll ich ausserhalb der VB-Exe dann beeinflussen, das ich die Taste 9 bei gedrücktem A simuliere.
Mfg Werner
Die Taste 7 soll auf s
Taste 8 auf y
Taste 9 auf x
Problem ist, es gibt twar tools die sowas können, leider hats
im Internet bei dem Onlinespiel keine Auswirkung gehabt,
sondern nur auf Text. Weiss jmd den Grund dafür???
Hi Werner,
wenn da die VB-Lösung nicht funktioniert weiß ich in VB-Hinsicht natürlich auch nicht weiter.
Aber vielleicht klappt noch was uraltes. Ich habe gerade geschaut, die Config.sys gibt es noch unter WinXP, zwar leer, aber das macht nix, es zeigt, daß sie noch von WinXP beim Start gelesen wird.
Ob darin enthaltene Anweisungen nur in einem Dos-Fenster wirken oder aber auch für WinXP gelten weiß ich nicht.
Zumindest wäre es den Versuch wert *find*, daß du googelst wie man in die config.sys die ansi.sys einbindet.
Dazu noch in die autoexec.bat (steht beides in c:) diesen Befehl:
prompt $e[65;66p
der in Dos bewirkt daß bei Eingabe des Tastaturzeichens 65 (A) das Tastataturzeichen 66 (B) erscheint.
Nach diesen Änderungen in config.sys und autoexce.bat den PC neu starten und einfach mal das große a eingeben und schauen was auf dem Bildschirm angezeigt wird, A oder B…
Falls es klappt, kann man dann auch xys „umlegen“, wenn nicht, naja, dann gings halt nicht 
Gruß
Reinhard
Die Taste 7 soll auf s
Taste 8 auf y
Taste 9 auf x
http://de.wikipedia.org/wiki/Autohotkey
damit kannst Du jede Taste belegen mit was
Du willst und vieles vieles mehr.
als Scriptbefehle dann einfach:
s::7
y::8
x::9
LG Alex
Hallo Werner,
deswegen geht das aber trotzdem noch nicht im System oder???
Wie soll ich ausserhalb der VB-Exe dann beeinflussen, das ich
die Taste 9 bei gedrücktem A simuliere.
doch, das geht.
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form\_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1\_Timer()
If GetAsyncKeyState(65) Then
SendKeys "9"
End If
End Sub
Das muss nur laufen, darf ruhig minimiert oder unsichtbar sein.
Die ‚9‘ wird dann an das aktive fenster geschickt, das ‚a‘ vorher allerdings auch. Wenn das nicht stört …
Gruß Rainer
Hi Alex
bitte nochmal melden.
Das klappt so super.
Gibt es auch eine Möglichkeit auf einer Taste zb die Tastenfolge
9, Ctrl, 8, Ctrl, 9 zu legen.
Das wäre fantastisch.
Mfg Werner
Das klappt so super.
prima
Gibt es auch eine Möglichkeit auf einer Taste zb die
Tastenfolge
9, Ctrl, 8, Ctrl, 9 zu legen.
probier mal
ö::
send {Control down}
Send {Control up}
send, 9
send {Control down}
Send {Control up}
send, 8
return
Falls das STRG zu schnell kommt, muß man vielleicht noch
zwischen Down+Up bisschen warten. Meld Dich.
LG ALex
Hi Alex
leider funktioniert das nicht,
irgendwie hakt es oder es geht nur 1 befehl.
Gibts ne andere Lösung, irgendwer muss doch auch mal 2 tasten hintereinander ausgeführt haben, ich finde im Netz nichts dazu.
mfg werner