Mac OS终端:终端窗口中的可单击文本(c可执行文件)

时间:2019-04-26 10:54:45

标签: c macos terminal

我试图在Mac OS终端中请求用户输入。我的程序是用c编写的,我希望有可点击的文本,该文本允许用户单击“是”或“否”以使我的c程序执行或不执行某些动作/功能。

例如,我想看到类似的东西:

  

您想验证您的电子邮件吗? [是] [否]

然后,我将能够单击“是”或“否”(因此基本上是/否是文本就像按钮一样)。

我没有找到任何答案可以回答我的问题,在c中是否可行。也许我实现了某种特定于Mac OS的功能,可以在我的c程序中调用该功能。

非常感谢您的所有帮助!

1 个答案:

答案 0 :(得分:1)

部分答案

要在终端中单击鼠标,必须在Cmd-R的Terminal.app中启用“鼠标报告”。 (如果您不想依赖它,可以在Terminal.app中启动xterm。)

然后,您可以使用以下顺序将鼠标单击转换为按键:

echo -e "\033[?1000h"

只需发布它,然后在“终端”窗口中单击即可。 要再次禁用它,请使用以下方法:

echo -e "\033[?1000l"

此CSI序列具有以下格式:ESC [?数l / h

更多详细信息可以在这里找到:XTerm Control Sequences

请注意,Terminal.app并不支持所有xterm功能。

启用以下内容的Quick'n'dirty C代码:

#include <unistd.h>
#define MR "\033[?1000h"
int main() { write(1,MR,sizeof(MR)-1);return 0;}

“鼠标击键”可以从STDIN中读取为其他击键。

替代解决方案方法

除了C外,您还可以使用AppleScript。