• ベストアンサー

キーボードを押すまで処理を中断させる方法

haru-pの回答

  • haru-p
  • ベストアンサー率28% (34/119)
回答No.4

while( !_kbhit() ){} _getch(); 上の while(~){} は不要ですよ。 _getch() だけでプログラムは停止します。 _getch() の使い方はコンソールアプリで使うキー入力なのでこれで OK です。

shenlong
質問者

お礼

haru-pさんありがとうございます。 Helpに_kbhit()がキー入力みたいな事が書かれていたので必死の思いで これに辿り着いたんですが・・・。 while( !_kbhit() ){} ←何かのキーを押すまでループ _getch(); ←キー情報を開放 のような感じで一人で納得してました。 実はいらなかったんですね、while( !_kbhit() ){} これから書き直そうと思います。 またよろしくお願いします。

関連するQ&A

  • キーボード入力で、各ボタンに割り付けた処理を行いたい

    現在、VC++6を用いて、MFC を使わずにアプリケーションを作っている初心者です。 ダイアログboxにボタンコントロールを5個つけました。 キーボード入力で、各ボタンに割り付けた処理を行いたいのですが、 簡単な方法はありますか? よろしくお願いします。

  • キーボード入力の処理

    開発環境 VC++.NET2003 8つのボタンコントロール8つを設置。 それをキーボード入力でボタンに割りあてた処理を行いたいのですが どのような解決方法がありますか?

  • マルチスレッド?

    VC++6.0 コンソールアプリケーションで作成されたプログラムの ある一つのクラスを別スレッドで動かしたいと思っています。 void main () { ~メインの処理~ ClassA clsa; clsa.fnc();←ここを別スレッドで動かしたい ~メインの処理~ } ClassA クラスは閉じたクラスでそこから別のクラスをコールしたりはしません。 なにか参考になるようなサイトなどでもかまいませんので 方法などわかる方は教えてください。

  • visual C++2008 Express 変数宣言等について

    sea_clear_skyです。 質問させて頂きます。 <環境> WindowsXP SP3 VisualC++ 2008 Express 現在、VisualC++ 2008 Expressでプログラムの勉強をしています。 VisualC++ Expressでコンソールアプリケーションじゃなく、 Windowsフォームアプリケーションで、変数の宣言(配列)の仕方と message::showで、変数の値を表示させる方法がわかりません。 C/C++などの、コンソールアプリケーションの方法では エラーがでて、実行できなかったので、 Windowsフォームアプリケーション用の記入の仕方があるのでは ないかと思っています。 初心者なので、わからない状態です。 VC++ 2008 EXPRESS 変数宣言 VC++ 2008 EXPRESS 変数 VC++ 2008 EXPRESS データ型 message;;show vc++ VC++ 2008 リファレンス VC++ 2008 入門 等など、たくさんのキーワードでホームページを 検索しましたが、知りたいことが載っている ホームページを見つけることができませんでした。 参考HPや解決方法について、ご教授お願いします。 すいませんが、よろしくお願いします。

  • 未サポートAPIを使用した時のエラー処理

    最低サポートバージョンがWindows VistaのWindowsAPIを使用したアプリケーションを、Windows XPなどの最低サポートバージョン以下のWindowsで実行した場合、対象のAPIがDLL内にないことを示すエラーメッセージダイアログボックスを出力して、異常終了します。 本来は、最低サポートバージョンのWindowsでアプリケーションを実行した場合、対象のAPIが実行される処理を通った時だけ、独自のエラー処理を実行したいのですが、このようなことは不可能なのでしょうか? <開発環境> ・Visual Studio 2008 ・VC6.0 ・コンソールアプリケーションとして作成

  • 【MFC】キャンセルボタン処理が実装できない

    VC++2005(MFC)にて下記サイトを参考にMDIアプリケーションを作成しています。 http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_MDI1.html 手順として、プロジェクトを新規作成し、MFC AppWizard(exe)で 新規プロジェクト名をMDITest1に設定し、アプリケーションの種類はMDI、 ビュークラスCMDITest1Viewの基本クラスはCFormViewとします。 リソースビューより、自動生成されたフォームの上に、 Buttonを配置し、イベントハンドラOnBnClickedButton1()内にて、 IDCANCEL()処理にて、ボタン押下時のウィンドウを閉じる処理を 実装したいのですが、コンパイルエラーが発生します。 基本クラスがCDialogクラスの場合は実装できるような気がするのですが。。 フォームビューだと、キャンセル処理は実装不可能なのでしょうか? また、不可能だとしたらウィンドウを閉じる処理はどのように実装すればよいのでしょうか? 解決策をご存知の方おられましたら、お手数ですがご教授宜しくお願い致します。

  • パイプ処理について

    お世話になっております。 コンソールをパイプ処理を通じて制御するWin32アプリケーションプログラムを作成しています。 パイプを作成して、コマンドプロンプトを起動、 netcap(Windowsのサポートツールです)の起動成功までは出来ました。 問題なのは、 このnetcapを終了させるためにはスペースキーを押さなければならないことです。 スペースキーを押さないと正しくログが作成されないみたいなのですが、 どのようにすればスペースキーが押されたこと子プロセスが認識できるのでしょうか? keybd_event()を使用してもうまく受け取ってくれませんでした。 よろしくお願いします。 【環境】 WinXP Pro SP1 VC++6.0

  • windows2000の終了時の判定

    windows2000でコンソールアプリケーション(perlで作成)を作成し、常駐プログラムとして稼働させる予定です。windowsの終了時にこのコンソールアプリケーションにある終了処理を行わせたいのですが、 このコンソールアプリケーションでwindows2000の終了を判定する方法がありますでしょうか。

  • マウス、キーボードを認識してくれない

    初めまして。宜しくお願い致します。 実は、OSがXP(ホームエディション)のPCを買って間もないのですが、使っていたら突然ネットから接続が切断されたので終了をかけました。(ここまでは普通でした。) その後、立ち上げようとしたら名前を選ぶ?画面(すいません、今までは98SEを使っていてXPは初めて使うのでよくわからないのです;;)で止まってしまい、マウス、キーボード共に動かないので選択する事も出来ません。 他の質問欄等も拝見しましたら【Windows 2000/XP を回復コンソールで起動します。(回復コンソールでも PS/2 キーボードが使えない場合、キーボード自体の故障も疑います。) 次のコマンドを実行します。 enable i8042prt SERVICE_SYSTEM_START exit Windows 2000/XP に重大な損傷が発生し、Safe モードでも起動できないような場合、回復コンソールで起動して起動環境の復元やファイルの救出などを行なうことができます。従来の NT では NTFS ドライブを持つ NT が起動しなくなった場合、別フォルダに NT を導入して救うケースなどがありましたが、回復コンソールは数 MB のミニ Windows を導入し、コマンドプロンプトといくつかのディスク修復コマンドを利用可能にしたものです。】 以上の事が載っていました。しかし、回復コンソールというものをいれていなかった為、どうしたらよいのかわからなくて大変困っています。(キーボードもマウスも動かない為入れる事も出来ません><)何かよい方法が御座いましたらご指導の方、宜しくお願い致します。ちなみにPCは自作(組み立ててくれて購入出来るもの)を購入しました。

  • ダイアログのWM_KEYDOWNで処理を実行したい

    現在、VC++6を用いて、MFC を使わずにアプリケーションを作っている初心者です。 最終的にはWIN_CEハンディーターミナルで動作させる予定です。 ダイアログにフォーカスがある状態で、"↓"キー入力があった場合に処理を行いたいのですが、 ダイアログ及び親ウインドウにWM_KEYDOWNが発生していないみたいなのです。 (SPY++にて確認しました。) DialogBox、CreateDialogの両方でやってみたのですがうまくいきません。 なにか良い方法はありますか? よろしくお願いします。