繁体   English   中英

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

[英]Mac os terminal: Clickable text in terminal window (c executable)

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

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

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

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

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

非常感谢您的帮助!

部分答案

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

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

echo -e "\033[?1000h"

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

echo -e "\033[?1000l"

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

可以在这里找到更多详细信息: XTerm控制序列

请注意,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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM