3

キーを押すとAlt、通常、フォーカスはウィンドウのメニューに移動します。グローバルに無効にする必要があります。私のアプリケーションはAltキーで動作するためです。ユーザーがキーと組み合わせてAltキーを押すと、アプリケーションはアクティブなアプリケーションに別のキーを送信します。Altそのため、メニューが開いたときに無視する必要があります。

プログラミングは初めてで、VB.Net または C# コードを探しています。

4

3 に答える 3

2

私の最初の答えは、プログラムのキーを使用せず、代わりに使用することです。「正常な」ことが起こらないようにブロックすると、通常、将来的に痛みが生じます。AltCtrl

ただし、キーを使用する必要がある場合は、メッセージフィルターを使用してアプリケーションレベルでキーを傍受しようとするこの記事Altを確認します。

それでも探していることがうまくいかない場合は、グローバルフックを調べる必要があるかもしれません。このリンクを使用すると、パスを開始できます。グローバルフックは一般的に悪と見なされるため、上記の2つの提案が機能しない場合にのみこれを使用する必要があります。フックをアンインストールする必要があります。そうしないと、奇妙なキーボードの問題を修正するためにコンピューターを頻繁に再起動する必要がある場合があります

于 2013-02-26T14:15:15.797 に答える
2

これは私のために働く:

    private class AltKeyFilter : IMessageFilter
    {
        public bool PreFilterMessage(ref Message m)
        {
            return m.Msg == 0x0104 && ((int)m.LParam & 0x20000000) != 0;
        }
    }

そして、次のようにメッセージ フィルターを追加します。

Application.AddMessageFilter(new AltKeyFilter());
于 2016-02-23T17:34:18.800 に答える