我想打印"a"。相反,它打印"9"。为什么,以及如何解决这个问题?
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
$kbd_event->Call
期望一个字节作为其第一个参数,但您的参数被视为整数。
尝试
$kbd_event->Call( chr($a), 0, 0, 0 );
$kbd_event->Call( chr($a), 0, 2, 0 );
看起来"A"键0x41
http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx