Keyboard 是否可以在COBOL中捕获退格键或左右箭头键?

Keyboard 是否可以在COBOL中捕获退格键或左右箭头键?,keyboard,cobol,Keyboard,Cobol,我想使用ACCEPT语句捕获箭头击键。我现在有这个: ACCEPT MY-DUMMY CONTROL KEY IN MY-KEYSTROKE 这对上下箭头有效。但是,对于左箭头和右箭头,它不起作用,因为运行时使用这些键在输入字段中导航 是否有任何方法可以捕获这些击键,并防止主机使用它们 编译器:ACUCOBOL-GT(我还不知道是哪个版本或发行版) 操作系统:Windows 10 除了公认的答案外: 可以在异常键前添加异常代码,以区分左箭头和右箭头击键 SET ENVIRONME

我想使用
ACCEPT
语句捕获箭头击键。我现在有这个:

ACCEPT MY-DUMMY
    CONTROL KEY IN MY-KEYSTROKE
这对上下箭头有效。但是,对于左箭头和右箭头,它不起作用,因为运行时使用这些键在输入字段中导航

是否有任何方法可以捕获这些击键,并防止主机使用它们

  • 编译器: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(引自)

默认情况下,左箭头和右箭头充当编辑键,上箭头和下箭头同时充当编辑键和异常键。如果需要,可以在运行时更改箭头的行为以在不同模式之间切换。您可以通过
设置环境
动词和相应的
按键
设置来执行此操作

另见


顺便说一句:“更新的”ACUCOBOL版本(读作“未完全过时”)支持
接受省略的

您使用的编译器和版本是什么?哪个操作系统?回答:是的,它是。。。如果你想知道怎么做。。这在很大程度上取决于所使用的编译器,您必须选择不同的路径。ACUCOBOL允许您设置映射到功能键的击键,如果您使用光标值,也应该将其返回。其他供应商有不同的扩展。如果你只需要一次按键就可以访问C库,那么调用'getch'
(如果系统使用诅咒)可能是更好的选择。我在答案中添加了异常键。谢谢你的更新。
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=055,Left kl"
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=056,Right kr"
ACCEPT OMITTED   CONTROL KEY IN MY-KEYSTROKE
SET ENVIRONMENT "KEYSTROKE" TO "EDIT=Left kl"
SET ENVIRONMENT "KEYSTROKE" TO "EDIT=Right kr"