質問 |
||
| QNo.4023937 | キーの自動入力 | |
|---|---|---|
| 質問者:rairarai |
既存のアプリケーションをスタートするのに、”S”を 押すのですが、これを自動でスタートするように勝手に ”S”を入力するようにするにはどういったプログラムをすればよいのでしょうか? 初歩的な質問かもしれませんが、よろしくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/05/15 12:51 |
||
回答良回答20pt |
|
| ANo.2 | ★アドバイス ・INPUT構造体にあるKEYBOARDINPUT構造体にいろいろ値をセットします。 その後にSendInput()関数を呼び出します。 サンプル: // 標準キーの設定 VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown ) { lpKey->type = INPUT_KEYBOARD; lpKey->ki.wVk = wVKey; lpKey->ki.wScan = (WORD)MapVirtualKey( wVKey, 0 ); lpKey->ki.dwFlags = (bKeyDown ? 0 : KEYEVENTF_KEYUP); lpKey->ki.dwExtraInfo = 0; lpKey->ki.time = 0; } // 使い方([Windows]+[R]の場合) INPUT Key[ 4 ]; LPINPUT lpKey = Key; setKeybrd( lpKey++, VK_LWIN, TRUE ); setKeybrd( lpKey++, 'R', TRUE ); setKeybrd( lpKey++, 'R', FALSE ); setKeybrd( lpKey++, VK_LWIN, FALSE ); if ( SendInput((UINT)(lpKey - Key),Key,sizeof(INPUT)) == (UINT)(lpKey - Key) ){ 正常 } else{ エラー } こんな感じで動くでしょう。 'R'を'S'にしてVK_LWINの行をなくせば良い。 |
|---|---|
| 回答者:Oh-Orange | |
| 種類:アドバイス どんな人:専門家 自信:参考意見 |
|
| 回答日時: 08/05/16 13:31 |
|
| |
| この回答へのお礼 | ありがとうございます。 そのまま使えてしまいました。 ご親切感謝です。 |
回答良回答10pt |
|
| ANo.1 | SendInput関数を使います http://msdn.microsoft.com/ja-jp/library/cc411004.aspx |
|---|---|
| 回答者:64bit | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/15 12:58 |
|
| |
| この回答への補足 | ありがとうございます。 当方知識が乏しく具体的な使用方法がわからないのですが、 VC++で"S”を自動的に入力するにはどうしたらよいか 教えていただけないでしょうか? |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |