特定のキーを押すと連打するとゆう動作をしたいのですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あおい
記事: 1
登録日時: 5年前
住所: 沖縄

特定のキーを押すと連打するとゆう動作をしたいのですが

#1

投稿記事 by あおい » 5年前

#include <windows.h>
#include <stdio.h>
using namespace std;

#define slp 100
//Sleepの長さ、値が小さいほど高速連打


//キーボードを押して離す関数
void Type(unsigned char code){
keybd_event(code,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(code,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
}


int main(){
printf("↑で連打開始\n");
printf("↓で連打停止\n");
printf("Escで終了\n");

int flag = 0;
printf("OFF\n");

while( true ){
if( GetAsyncKeyState (VK_ESCAPE) ){
//Escキーで終了
break;
}
if( GetAsyncKeyState (VK_UP) && flag == 0 ){
//上キーでflagがon
flag=1;
printf("ON\n");
}
if( GetAsyncKeyState (VK_DOWN) && flag == 1){
//下キーでflagがoff
flag=0;
printf("OFF\n");
}
if( flag == 1 ){
//flagがonならOキーを押して、離して、slpだけ待ちます
Type('O');
Sleep( slp );
}
}


return 0;
}
これをしても ↑ ↓ on off いちいちめんどうです
特定のキーを押して離したらOffにしたいです
教えてください

“C言語何でも質問掲示板” へ戻る