2012-05-30 13 views
1

我想打印“a”。相反,它打印“9”。为什么,以及如何解决这个问题?keybd_event打印数字而不是字母(perl win32 :: api)

use Win32::API; 

$kbd_event = Win32::API->new(
    "user32.dll", 
    "VOID keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo);" 
); 

$a = 0x61; 

$kbd_event->Call($a, 0, 0, 0); # press 
$kbd_event->Call($a, 0, 2, 0); # release 

回答

2

$kbd_event->Call期待一个字节作为第一个参数,但你的观点被视为一个整数。

尝试

$kbd_event->Call(chr($a), 0, 0, 0); 
$kbd_event->Call(chr($a), 0, 2, 0); 
+0

哎呀,我一直忘记字节。谢谢! – Sly

相关问题