ich möchte mit SendKeys ganze Strings an eine andere Applikation schicken.
Bei einfachen Buchstaben ist das kein Problem, bei '%' und '(' aber schon
nicht ganz so einfach., nämlich "+5" und "+8".
Gibt es da kein einfaches Mapping? Oder macht man das etwa ganz anders?
Über den ASCII-Code eines Zeichens und die KeyPad-Tasten sollte sich das
doch verallgemeinern lassen ...
In der Microsoft Visual Studio 2005 Documentation zum Beispiel ist zwar der
Code für einige "Sondertasten" angegeben (zum Beispiel {NumLock} und
{PgUp}), die Tasten des Keypads fehlen aber dort.
Wer kann mir da helfen?
Schönen Gruß
Horst
"Horst Brand" <Brand...@t-online.de> schrieb im Newsbeitrag
news:%23VIKgZf%23GHA...@TK2MSFTNGP03.phx.gbl...
warum nicht folgendermaßen:
Dim a As String ="ABC%DEF+{}"
Dim b As String
Dim t As Integer
For t = 1 To a.Length
b = Strings.Mid(a,t,1)
Select Case b
Case "%","+","~","(",")","[","]","{","}"
b="{"& b &"}"
' ... Die anderen Fälle hier einfügen ...
End Select
SendKeys.Send(b)
> In der Microsoft Visual Studio 2005 Documentation zum Beispiel ist
> zwar der Code für einige "Sondertasten" angegeben (zum Beispiel
> {NumLock} und {PgUp}), die Tasten des Keypads fehlen aber dort.
Die Zifferntasten scheinen da wohl den gleichen Code zu haben.
Die anderen Funktionen sind aber gemappt.
Keypad add {ADD}
Keypad subtract {SUBTRACT}
Keypad multiply {MULTIPLY}
Keypad divide {DIVIDE}
Beste Grüße,
HKSHK
Was bedeutet "Die Zifferntasten scheinen da wohl den gleichen Code zu
haben"?
Auf der Tastatur macht es doch einen Unterscheid, ob ich die Ziffernasten in
der oberen Reihe oder im Keypad drücke,
zum Beispiel kann ich die Zeichen im ASCII-Code nur über das Keypad
eingeben.
Schönen Gruß
Horst Brand
"HKSHK" <hk...@gmx.net> schrieb im Newsbeitrag
news:454a177b$0$25363$9b62...@news.freenet.de...
Horst Brand wrote:
> Vielen Dank!
> Habe ich das richtig verstanden, dass ich also zum Beispiel
> die Tilde mit SendKeys.Send("{~}") senden kann
> und die geschweifte rechte Klammer mit SendKeys.Send("{}}") !?
Ja.
> Was bedeutet "Die Zifferntasten scheinen da wohl den gleichen Code zu
> haben"?
Stimmt. Aber es scheint, daß SendKeys die Zifferntasten des
Nummernblocks nicht als solche unterstützt, sondern sie genauso handhabt
wie die Zifferntasten oberhalb der Buchstaben.
> Auf der Tastatur macht es doch einen Unterscheid, ob ich die
> Ziffernasten in der oberen Reihe oder im Keypad drücke,
> zum Beispiel kann ich die Zeichen im ASCII-Code nur über das Keypad
> eingeben.
Das ist auch nicht unbedingt ein Problem, da sich über
SendKeys.Send(ASCII-Wert) sämtliche ASCII-Zeichen senden lassen.
Auch Unicode ist möglich.
Beachten Sie bitte, daß die Zeichen "%","{", ... auch beim Senden als
ASCII-Wert immer noch die gleiche Sonderbehandlung erfahren.
Beispiele:
SendKeys.Send(223) sendet ein ß (deutsches Sonderzeichen)
SendKeys.Send(64) sendet ein @ (Alt+Ctrl+Q)
SendKeys.Send(1055) sendet ein П (großes kyrillisches Pe)
Beste Grüße,
HKSHK
dann ist es doch wohl am einfachsten (für die Codierung),
man sendet jedes Zeichen einzeln mit seinem seinem ASCII-Code, oder?
Schönen Gruß
Horst Brand
"HKSHK" <hk...@gmx.net> schrieb im Newsbeitrag
news:454b65f5$0$2332$9b62...@news.freenet.de...
> SendKeys.Send(1055) sendet ein ? (großes kyrillisches Pe)
>
> Beste Grüße,
>
> HKSHK
> dann ist es doch wohl am einfachsten (für die Codierung),
> man sendet jedes Zeichen einzeln mit seinem seinem ASCII-Code, oder?
Letzendlich ist es egal, da die Zeichen mit Sonderbehandlung %,{, ... ja
eh interpretiert werden müssen.
Beste Grüße,
HKSHK
> Habe ich das richtig verstanden, dass ich also zum Beispiel
> die Tilde mit SendKeys.Send("{~}") senden kann
> und die geschweifte rechte Klammer mit SendKeys.Send("{}}") !?
>
> Was bedeutet "Die Zifferntasten scheinen da wohl den gleichen Code zu
> haben"?
> Auf der Tastatur macht es doch einen Unterscheid, ob ich die Ziffernasten
> in der oberen Reihe oder im Keypad drücke,
> zum Beispiel kann ich die Zeichen im ASCII-Code nur über das Keypad
> eingeben.
Es werden ja Zeichen gesendet, keine Tastaturcodes. Die Ziffern des
Nummernblocks unterscheiden sich zwar im Tastaturcode, liefern aber nach
der Windows-internen Verarbeitung eben Zeichen. In einem Textfeld /in einer
Textverarbeitung/... kommen ja auch die Ziffernzeichen - egal, über welche
Taste sie erzeugt worden sind.
Insofern ist allerdings die Bezeichnung Send*Keys* tatsächlich irreführend.
Viele Grüße
Harald M. Genauck
ABOUT Visual Basic - das Webmagazin - http://www.aboutvb.de
"visual studio one" - http://www.visualstudio1.de