1

「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
4

2 に答える 2

2

$kbd_event->Call最初の引数としてバイトが必要ですが、引数は整数として扱われます。

試す

$kbd_event->Call( chr($a), 0, 0, 0 );
$kbd_event->Call( chr($a), 0, 2, 0 );
于 2012-05-30T17:59:19.717 に答える
2

「A」キーは0x41のようです

http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx

于 2012-05-30T17:04:46.103 に答える