2

わかりましたので、私は Windows プログラミングの最新情報ではないので、ここで間違ったツリーを完全に吠えているかもしれませんが、ここに行きます。

Visual Studio 2010 の C++ プロジェクトでシミュレートされたキープレスを開始しようとしています。

基本的に、プログラムが別のアプリケーションから特定のコード文字列を受け取ったとき (これはすべて、多くの if ステートメントを介して処理され、面倒ですが機能します)

キーボードで Ctrl と s を押した場合と同じ機能を実行するために必要です。

今私が見つけたいくつかのコードはこれでした。

keybd_event(VK_LCONTROL,0,0,0); 
  keybd_event(bKey, 0, 0, 0);


   keybd_event(bKey, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0); 

ここで、bKey は S の適切な ASCII コードです。それは私を手に負えませんが、それでも、この投稿にはほとんど関係ありません。

それについての私の理解によってこれがすべきことは

Push Control down
Push S down
Release S
Release Control.

ただし、これを行うようには見えず、S を押して離すだけのようで、その時点でテキスト入力が利用可能かどうかに応じて、S を適切に出力するかどうかに依存します。

ここでまったく間違ったツリーを吠えていますか? Xcode の Objective C でこれを行う方法は知っていますが、この 2 つは根本的に異なるように見えます。異なるシステムであることはわかっていますが、それでもなおです。

誰でもこれに対する解決策を提案できますか? 基本的に、プログラムで Control + S を同時に (次々にではなく、一緒に) ヒットさせる方法です。

どんな助けでも大歓迎です。情報が錯綜しているようです。

4

1 に答える 1

2

代わりにこれを試してください:

keybd_event(VK_LCONTROL,MapVirtualKey(VK_LCONTROL,0),0,0); 
keybd_event(bKey, MapVirtualKey(bKey,0), 0, 0);


keybd_event(bKey, MapVirtualKey(bKey,0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL,MapVirtualKey(VK_LCONTROL,0),KEYEVENTF_KEYUP,0); 
于 2010-08-01T17:26:16.663 に答える