+ -
当前位置:首页 → 问答吧 → 请问Win32::Console如何获取键盘的输入字符并显示

请问Win32::Console如何获取键盘的输入字符并显示

时间:2010-08-26

来源:互联网

本帖最后由 aef25u 于 2010-08-26 00:31 编辑

非使用Term::ReadKey获取键盘输入,请问Win32::Console如何获取键盘的输入字符并显示?
只是显示的话可以用(my $OUT = new Win32::Console(STD_OUTPUT_HANDLE) || die;$OUT->Write();)实现,看了cpan文档后仍不知如何从键盘获取输入字符,请知道的告知一下,谢谢!

作者: aef25u   发布时间: 2010-08-26

copy了一点之前的代码,大概流程如下,主要是 input event的获取,因为console模块还可以获取 mouse 的event,所以有好些参数你都要去查一下怎么用,MS 和 CPAN 都应该有文档的。

my $In = new Win32::Console(STD_INPUT_HANDLE) || die;

   my @event=$In->Input();
   #   keyboard event type = 1          key down=1          repeat count =1
   if(($event[0] == 1) && ($event[1] == 1) && ($event[2] == 1)) {
      return \@event;
   }
   return 0;

利用返回的 \@event,可以获取:
my ($virtualKey, $asciiKey) = @$keyDownEvent[3, 5];

作者: dugu072_cu   发布时间: 2010-08-26