
17.02.2025, 16:55
|
|
Участник форума
Регистрация: 01.01.2023
Сообщений: 216
С нами:
1773732
Репутация:
33
|
|
C++:
Код:
void
pressKey
(
const
QString
&
key
,
bool
release
=
false
)
{
INPUT input
=
{
}
;
input
.
type
=
INPUT_KEYBOARD
;
WORD scanCode
=
0
;
DWORD flags
=
0
;
if
(
key
==
"alt"
)
{
scanCode
=
0x38
;
flags
=
KEYEVENTF_EXTENDEDKEY
;
}
else
if
(
key
==
"ctrl"
)
{
scanCode
=
0x1D
;
flags
=
KEYEVENTF_EXTENDEDKEY
;
}
else
if
(
key
==
"shift"
)
{
scanCode
=
0x2A
;
}
else
{
char
c
=
key
.
toUpper
(
)
.
toStdString
(
)
[
0
]
;
scanCode
=
MapVirtualKeyA
(
c
,
MAPVK_VK_TO_VSC
)
;
}
input
.
ki
.
wScan
=
scanCode
;
input
.
ki
.
dwFlags
=
KEYEVENTF_SCANCODE
|
flags
;
if
(
release
)
{
input
.
ki
.
dwFlags
|=
KEYEVENTF_KEYUP
;
}
SendInput
(
1
,
&
input
,
sizeof
(
INPUT
)
)
;
}
|
|
|