【发布时间】:2016-07-11 16:57:34
【问题描述】:
我想使用ACCEPT 语句捕获箭头键击。我现在有这个:
ACCEPT MY-DUMMY
CONTROL KEY IN MY-KEYSTROKE
这适用于向上和向下箭头。但是,对于左右箭头,它不起作用,因为运行时使用这些键在输入字段中导航。
有没有什么方法可以只为这个ACCEPT 捕获这些击键,并防止主机消耗它们?
- 编译器:ACUCOBOL-GT(我还不知道哪个版本或发行版)
- 操作系统:Windows 10
除了接受的答案:
可以在异常键前面加上异常代码,以区分左右箭头键击。
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=054,Left kl"
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=055,Right kr"
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=201,BkSp ZB"
ACCEPT DUMMY
CONTROL KEY IN MY-KEYSTROKE
EVALUATE (MY-KEYSTROKE)
WHEN 054
PERFORM DO-SOMETHING
END-EVALUATE
【问题讨论】:
-
您使用的是哪个编译器和版本?哪个操作系统?
-
回答:是的,它是......如果你想知道怎么做......它在很大程度上取决于使用的编译器,你必须走不同的路径。 ACUCOBOL 让您设置映射到功能键的击键,如果您使用光标值,您也应该将它们取回。其他供应商有不同的扩展。如果您只需要一个按键并且可以访问 C 库,例如
CALL 'getch'(如果系统使用 curses)甚至可能是更好的选择。 -
我已将异常键添加到答案中。感谢您的更新。