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);