C程序识别控件或alt键
我正试图写一个C程序,它知道control/alt/shift键被按下。我在Java中找到了一些提供这种功能的东西,但这对我帮助不大C程序识别控件或alt键,c,special-characters,C,Special Characters,我正试图写一个C程序,它知道control/alt/shift键被按下。我在Java中找到了一些提供这种功能的东西,但这对我帮助不大 void CMousepresentView::OnDraw(CDC* pDC) { int shiftValue=::GetKeyState(VK_SHIFT); if(!shiftValue) pDC->TextOut(0,50,"Shift not pressed"); else pDC->TextOut(0,50,"Shift pressed"
void CMousepresentView::OnDraw(CDC* pDC)
{
int shiftValue=::GetKeyState(VK_SHIFT);
if(!shiftValue)
pDC->TextOut(0,50,"Shift not pressed");
else
pDC->TextOut(0,50,"Shift pressed");
int ctrlValue=::GetKeyState(VK_CONTROL);
if(!ctrlValue)
pDC->TextOut(0,100,"Ctrl not pressed");
else
pDC->TextOut(0,100,"Ctrl pressed");
}
所以到目前为止,我所拥有的是相当基本的,但我必须从某个地方开始。但这根本不起作用
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char ch;
do {
ch = getchar();
putchar(ch);
} while(iscntrl(ch));
return 0;
}
我希望ISCONTRL至少能让我从系统中得到一些反应,开始调试和识别控制序列按键。没有这样的运气
如果我能看到一个例子,输出控制被按下/控制被释放,我可能会找出其余的
更新:
我们在这方面取得了一些进展
更新:
我认为答案在于使用xlib。谢谢大家。您不能在控制台程序中检查静音键,不仅仅是这些键。如果使用类似的东西,可能会将它们作为其他关键点的修改器
如果你想制作一个带有图形用户界面的程序,这不是问题。这是一个流行的框架。检查所选框架的文档。您可以使用原始键盘模式找到与问题相关的结果
根据应用程序的不同,您可能可以使用能够接收原始键盘事件的应用程序。您编写的程序是在终端窗口中工作还是创建自己的窗口?如果是前者,约阿希姆是正确的。如果是后者,有一种方法,但我不知道怎么做。顺便说一句,最上面的片段是Windows,Windows有一种非常简单的方法,我现在想不起来了。我确实看到了系统在执行cat/dev/input/by path/platform-i8042-serio-0-event-kbd时的一些响应,所以我认为这是有可能的,为什么它不能在控制台中工作,而是在Qt中?那没有道理。我想知道我是否能够捕获/dev/input/by path/platform-i8042-serio-0-event-kbd。@Justin:它可以在Linux控制台中工作,但不能在xterms上工作。@Justin QT是图形用户界面的框架,当图形程序处于焦点时,它可以接收所有键的事件。文本程序,如xterm中的程序,只能接收文本输入,有时带有ALT和CTRL等修饰符,但不能单独使用ALT,因为它不会生成字符。