Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

30.09.2021, 13:03

Probier anstatt virtuelle Keycodes, Scan-Codes zu senden.

Das bedeutet das Flag "KEYEVENTF_SCANCODE" zu setzen und dann nicht das wVk zu setzen, sondern das Feld wScan. Schau dir dazu am besten vorher mit einer extra Software an, welche Scan-Codes exakt gesendet werden, bei den Tasten die du betätigen möchtest.
Hier eine Liste an Scan-Codes, die du als Anhaltspunkt verwenden könntest: http://www.winfaq.de/faq_html/Content/ti…p?h=tip1576.htm

Und wie David bereits gesagt hat, die Tasten mit dem Flag "KEYEVENTF_KEYUP" wieder loslassen nicht vergessen.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

12

30.09.2021, 16:19

Probier anstatt virtuelle Keycodes, Scan-Codes zu senden.

Das bedeutet das Flag "KEYEVENTF_SCANCODE" zu setzen und dann nicht das wVk zu setzen, sondern das Feld wScan. Schau dir dazu am besten vorher mit einer extra Software an, welche Scan-Codes exakt gesendet werden, bei den Tasten die du betätigen möchtest.
Hier eine Liste an Scan-Codes, die du als Anhaltspunkt verwenden könntest: http://www.winfaq.de/faq_html/Content/ti…p?h=tip1576.htm

Und wie David bereits gesagt hat, die Tasten mit dem Flag "KEYEVENTF_KEYUP" wieder loslassen nicht vergessen.


Okay..
Was ist denn jetzt der Unterschied zwischen dem ScanCode und dem virtuellen Code?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    while (true)
    {
        keybd_event (VK_SPACE,
                     0x39,
                     KEYEVENTF_SCANCODE,
                     0
                    );

        Sleep(1000);
    }