• 締切済み

C# 何かキーを押すとことで処理を中止したい

mattue2ksの回答

  • mattue2ks
  • ベストアンサー率25% (3/12)
回答No.3

タイマーで定期間隔監視するようにして、 キーボード状態はGetAsyncKeyState, GetKeyboardState, GetKeyState等で取得、マウス座標はControl.MousePositionを見るのはいかがですか。 GetAsyncKeyStateとGetKeyboardStateはWin32 APIですので、使用には以下のような宣言が必要です。(あくまでも例です。Cの型と矛盾がなければ以下の宣言は微調整がききます) [DllImport("user32.dll")] static extern short GetAsyncKeyState(int vKey); [DllImport("user32.dll")] static extern bool GetKeyboardState(byte [] lpKeyState); [DllImport("user32.dll")] static extern short GetKeyState(VirtualKeyStates nVirtKey); 詳細はMSDNを参照して下さい。 http://www.microsoft.com/japan/msdn/ Win32APIの宣言は以下のサイトから取りました。 http://www.pinvoke.net/

関連するQ&A

  • VBAでCTRLキーが押されるまで処理を待つには

    ExcelのVBAの処理で、処理結果を画面表示した後、 ユーザーが画面の内容を確認したら CTRLキーを押すと、 次の処理を続行するようにしたいのですが、 メッセージボックス(MSGBOX)などは表示しないで、 (画面表示内容以外のものは表示しないで) 処理を一時停止させて、CTRLキーが押されたら続行するには、 VBAでどのように記述すればよいでしょうか。 よろしくお願いします。(Windows10,Excel2016)

  • C#でマウスホイール + Ctrlキーを使った機能

    C#でアプリケーションを作っています。 マウスホイール + Ctrlキーを使った機能を作りたいと思っています。 マウスホイールは、 private void GraphBrowser_MouseWheel(object sender, MouseEventArgs e) { if ((e.Delta / 120) > 0)//上向きに回転される { } } といった感じです。 Ctrlキーは、 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == e.Control) { } } といった感じです。 各々、別々の単独の処理は、分かるのですが、 マウスホイール + Ctrlキーとなると分からなくなりました。 指導よろしくお願いいたします。

  • Ctrlキーが押されたことの検出

    コントロールキーを押しながらコマンドボタンを押した時と、単にコマンドボタンを押した時とで、処理を変えようかと考えています。 Application.OnKey "^{}", "ctrl"で、キーを捕まえようかと考えましたが。エラーになります。 で、質問ですが、1つは、Ctrlキー、Shiftキー、Altキーを単体で押したときに任意のプロシージャーを実行することってできますか? 2つ目は、任意のプロシージャーではなく、押されているかどうかの状態のみ調べる方法ってありますか? どなたか、詳しい方教えて頂けないでしょうか?宜しくお願い致します。

  • C#のマルチスレッド処理について

    C#のWindowsフォームアプリケーションをつくっています。 .Netではマルチスレッド関連の選択肢がたくさんあるようですが、以下のようなユースケースではどんな組み合わせにするのがいいのでしょうか? UIとは別スレッドでネット接続してデータとってきたものをフォームに反映します。UIはブロックして欲しくなくて、ローディング中にはローディング中にアニメーションを表示したりします。 新スレッドを作って、その完了を待つことはできるんですが、その結果をどうフォームに反映するか、というところがよくわかりません。 C#は初心者なのでコード例やリンクをよろしくお願いいたします!

  • VBからFortran、Cを呼び出すことはできますか。

    PCフォートラン・C言語で作成したアプリケーションがあるのですが、VBのユーザーインターフェース機能を生かして、対話型のプログラムにしたいと思います。 VBとフォートラン・C言語をリンクして、できれば変数の受け渡しもできるようなプログラム(メニューをVBで作成して、処理をフォートランに渡す)をイメージしています。 上記のような処理を経験された方、又は知識を有しておられる方がおられましたら、よろしくお願い致します。

  • directshowのイベント処理

    こんにちは。 現在「directshow」を使って動画再生プログラムを作っています。 再生、停止などはできています。 そこで質問があるのですが、ムービーを再生しているウィンドウで処理(マウスクリックやキー入力)を取得したいときはどうすればよろしいのでしょうか? ムービー再生中に画面上でクリック(もしくはキー入力)することでムービーを停止したいと思っているのですが、なかなかうまくいきません。 どなたかご教授いただければ幸いです。 よろしくお願いします。

  • C#.netで

    C#.netでテンプレートのWINDOWSアプリケーションの作成において、BUTTONを作成したのですが、これをF12KEYを押したときにもBUTTONが押されるようには、どのようにプログラミングをすればよいか教えてください。 質問が下手ですいません。

  • C#.netで

    C#.netでテンプレートのWINDOWSアプリケーションの作成において、BUTTONを作成したのですが、これをF12KEYを押したときにもBUTTONが押されるようには、どのようにプログラミングをすればよいか教えてください。 質問が下手ですいません。

  • テキストボックスへ改行キー入力でマクロ実行するには

    VBA-テキストボックスへ文字列を入力し、改行キーを入力したらマクロ実行という流れで処理したいのですが、実現可能でしょうか?

  • Tomcat停止後の処理継続について

    Tomcat停止後の処理継続について質問です。 ある処理を行うプログラムAがあるとします。 この処理には非常に時間がかかり、1時間くらいかかるとします。 このプログラムをサーブレットから呼び出し、起動させた後、 仮に、Tomcatが停止してもプログラムAを稼動させ続けたいのですが、 どのようにすればよろしいでしょうか? つまり、 1:ユーザがあるリンクをクリック 2:TomcatがHTTPリクエストを受け取り、サーブレットを呼び出す 3:2のサーブレットがプログラムAを起動 4:サーブレットが「プログラムAを起動しました。」というHTMLをブラウザに返す 5:プログラムAの処理が終了していない段階で、Tomcatを停止させる という流れの中で、5以降もプログラムAを稼動させつづけたいのです。 どなたか、ご教授いただけませんでしょうか? ちなみに、プログラムAはJavaです。 動作OSはRedHatです。

    • ベストアンサー
    • Java