私はcontrol/alt/shiftキーが押されていることを認識しているCプログラムを作成しようとしています。私はJavaでこの機能を提供するものを見つけましたが、それはあまり役に立ちません。コントロールまたはaltキーを識別するためのCプログラム
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;
}
私はiscntrlは、少なくとも制御シーケンスキー入力をデバッグし、識別を開始するために私のシステムからいくつかの反応を与えるだろうと期待していました。そのような運はありません。
"コントロールが押された/コントロールがリリースされました"という出力が表示される場合は、残りの部分を把握できました。
アップデート:私は答えはXlibのを使用していると思う
:
てきたが、このhttp://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node-devinputevent/
アップデートでいくつかの進展がありました。みんな、ありがとう。
Microsoft Windowsまたは何ですか? – marinara
私のセットアップでXubuntuを使う – Justin
ターミナルウィンドウで動作するプログラムや独自のウィンドウを作成するプログラムを書いていますか?前者の場合、ヨアキムは正しいです。後者の場合、方法がありますが、私はそれを行う方法がわかりません。 – zwol