2016-08-17 1 views
0

Ich möchte eine Alt-Kombination an ein anderes Fenster innerhalb einer Bildschirmtastatur senden. Mit Kombination meine ich, wenn Sie Alt gedrückt halten und geben Sie Kombination eine Nummer oder hexadezimal (Registrierungsschlüssel für hex gesetzt werden):Verwenden Sie SendKeys, um Alt-Kombinationen zu senden, um Sonderzeichen einzugeben

ALT down, Add press, 2 press, 5 press, 1 press, ALT up

I

versucht

SendKeys.SendWait("%{ADD}251") aber es ist Alt + hinzufügen 2 5 1

SendKeys.SendWait("%{ADD}%2%5%1") aber es ist Alt + hinzufügen Alt + 2 Alt + 5 Alt + 1

SendKeys.SendWait("%({ADD}251)") aber es ist Alt und dann die anderen Tasten gleichzeitig mit Tastaturbefehlen oder anderen Klassen

Ref to MSDN

Irgendwelche Vorschläge für eine Lösung gedrückt?

[Bearbeiten] Lösung:

Beispiel für CharCode (Element von Enum) Quelle: ʊ = &H28A

Dim CharCodeUnicodeStr As String = Hex(CInt([Enum].Parse(GetType(Source), CharStr))).ToString SendKeys.SendWait("%{ADD}%" & ChrW(Convert.ToInt32(CharCodeUnicodeStr, 16)))

Antwort

0

Haben Sie

versucht
SendKeys.SendWait("%{ADD}%" & ChrW(&H251)) 

Dies wird Ihre Hexa-Code in ein char konvertieren. Dann, wenn Sie die Kontrolle über die andere Anwendung haben, können Sie diese Char zurück zu einer Nummer ...

+0

Ich versuchte 'SendKeys.SendWait ("% {ADD}% "& ChrW (Convert.ToInt32 (i, 16)))', weil ich mit einer Var für den Code des Char arbeiten. Es funktioniert nicht. Wie die anderen Versuche, die ich erwähnte, passiert nichts. – Lars

+0

@Lars können Sie mit 'Convert versuchen.ToInt32 (i) '(entfernen Sie die', 16') –

+0

Sorry nur ** WORKING **. Es war nur der falsche Code. Die ', 16' muss da sein. – Lars

1

die Schlüssel in Klammern gesetzt, um anzuzeigen, dass ALTsein sollte gehalten während die anderen drücken.

SendKeys.SendWait("%({ADD}251)") 
+0

@Lars: Ich habe gerade festgestellt, dass dies der gleiche wie Ihr dritter Versuch ist ... Ich denke, was Sie versuchen Mit 'SendKeys' ist das nicht möglich. Ich werde sehen, was ich in etwa einer Stunde vorhabe. –

+0

@Lars: Okay, diese Stunde hat länger gedauert als erwartet, sorry dafür (etwas Unerwartetes kam auf). Ich werde sehen, ob ich bald etwas vermischen kann, während ich SuperPeanuts Lösung ausprobieren würde, denn das ist sehr einfach, wenn es funktioniert. –

+0

Okay, ich habe verschiedene Variationen der 'SendInput' WinAPI Funktion ausprobiert, aber ohne Erfolg. Bist du sicher, dass dein dritter Versuch die Tasten gleichzeitig drückt? Weil es nicht sollte. Wofür ist das wirklich? –

Verwandte Themen