Win32API, frage zu Virtual Keys (@)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
comeo
User
Beiträge: 5
Registriert: Freitag 2. August 2019, 13:18

Hi, ich beschäftige mich zur Zeit mit der Win32API und bin auf folgendes Problem gestoßen:
Das hier sind alle verfügbaren virtual keys: https://docs.microsoft.com/en-us/window ... -key-codes
Jetzt will ich aber beispielsweise das @ Symbol mit

Code: Alles auswählen

win32api.PostMessage()
darstellen lassen.
Wie würde das für das @ Symbol aussehen? Hat jemand eine Idee?

Vielen Dank vorab!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Indem du die notwendigen Tastendrücke der modifier und der entsprechenden Taste durchführst. Oder nach eine API schaust, die es dir gleich erlaubt solche Buchstaben zu verschicken (kA ob’s die gibt, aber kann ich mir vorstellen). Denn sonst musst du natürlich noch die eingestellte Tastaturbelegung beachten.
comeo
User
Beiträge: 5
Registriert: Freitag 2. August 2019, 13:18

Habe ich schon versucht, leider ohne Erfolg.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Was hast du versucht?
Zeig deinen Code, sag was du erwartet hast, was wirklich passiert ist und die Fehlermeldung.
Sirius3
User
Beiträge: 18270
Registriert: Sonntag 21. Oktober 2012, 17:20

Bei normalen Zeichen benutzt man normalerweise WM_CHAR.
Benutzeravatar
snafu
User
Beiträge: 6866
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Was spricht gegen gegen SendKeys()?

Code: Alles auswählen

import win32com.client

def send_keys(key_string, window_title):
    shell = win32com.client.Dispatch('WScript.Shell')
    if not shell.AppActivate(window_title):
        raise ValueError(f'Failed to activate window: {window_title}')
    shell.SendKeys(key_string)
Hier übrigens etwas Doku dazu: https://social.technet.microsoft.com/wi ... ethod.aspx
(ist für VBScript, lässt sich aber leicht auf Python übertragen)
Zuletzt geändert von snafu am Sonntag 18. August 2019, 09:19, insgesamt 1-mal geändert.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Und wenn es um das "Fernsteuern" anderer Windows-Fenster geht, habe ich gute Erfahrung mit pywinauto gemacht.
comeo
User
Beiträge: 5
Registriert: Freitag 2. August 2019, 13:18

Sirius3 hat geschrieben: Sonntag 18. August 2019, 08:50 Bei normalen Zeichen benutzt man normalerweise WM_CHAR.
Vielen Dank. Mit VM_CHAR kann man Sonderzeichen wie "$", "@" usw. verwenden.
Antworten