Table of Contents

HKMIsKeyDown 判断键盘是否按下

功能

判断键鼠模拟器连接的键盘的键是否按下

参数

  • 参数1: 设备对象:无类型指针。使用HKMOpen可以创建它。
  • 参数2: 键名:字符串(Unicode/Ansi),或者无符号32/64位整数(32位模式使用32位整数,64位模式使用64位整数)。可以使用字符串(默认为Unicode字符串,也可以通过HKMSetMode修改为Ansi字符串),也可以使用无符号32/64位整数。键名和整数对应关系可以查看虚拟键表

返回值

布尔值。按下返回True,没按下或失败返回False

C#例子

uint dwDevId;
IntPtr lpDev;
dwDevId = SkmCore.HKMSearchDevice(0x1234, 0xABCD, 0);
if (dwDevId == 0xFFFFFFFF)
{
    Console.WriteLine("未找到键鼠模拟器");
    return;
}
lpDev = SkmCore.HKMOpen(dwDevId, 0);
if (lpDev == IntPtr.Zero)
{
    Console.WriteLine("打开键鼠模拟器失败");
    return;
}
SkmCore.HKMKeyDown(lpDev, "Alt");
bool isAltDown = SkmCore.HKMIsKeyDown(lpDev, "Alt");
Console.WriteLine($"Alt键状态:{isAltDown}");
SkmCore.HKMDelayRnd(lpDev, 90, 120);
SkmCore.HKMKeyUp(lpDev, "Alt");
isAltDown = SkmCore.HKMIsKeyDown(lpDev, "Alt");
Console.WriteLine($"Alt键状态:{isAltDown}");
SkmCore.HKMClose(lpDev);

C语言例子

DWORD dwDevId;
LPVOID lpDev;
dwDevId=HKMSearchDevice(0x1234,0xABCD,0);
if(dwDevId==0xFFFFFFFF)
{
    printf("未找到键鼠模拟器\n");
    return 0;
}
lpDev=HKMOpen(dwDevId,0);
if(lpDev==NULL)
{
    printf("打开键鼠模拟器失败\n");
    return 0;
}
HKMKeyDown(lpDev,L"Alt");
printf("Alt键状态:%d\n",HKMIsKeyDown(lpDev,L"Alt"));
HKMDelayRnd(lpDev,90,120);
HKMKeyUp(lpDev,L"Alt");
printf("Alt键状态:%d\n",HKMIsKeyDown(lpDev,L"Alt"));
HKMClose(lpDev);