key操作と同じ効果を生み出すには?

解決


りぅ  2007-06-13 13:06:12  No: 65372  IP: 192.*.*.*

OS:XP,開発環境:VC++(mfc)でプログラミングをしています.

早速質問なのですが.
先日ShellExecute関数を使ってあるフォルダを立ち上げることを行いました.
次に,フォルダ内のアイコンを選ぶ動作を行わせたいと思っています.

例えば,[→]keyを押すとカーソルがひとつ右のアイコンに移動します.
そして,[Enter]keyを押すと,そのアイコンのファイルを実行したり,フォルダに移動したりします.

これと同様の動作をプログラムに任せて行いたいと思っているのですが..
つまり,ある条件が満たされるとフォルダが立ち上がり,
次の条件でカーソルを右へ移動,
次の条件でカーソルのあっているアイコンを選択,
といった感じのことをやりたいと考えています.
そのような方法があれば,ご教授ください.

編集 削除
subaru  2007-06-13 14:07:34  No: 65373  IP: 192.*.*.*

キーのシミュレートでいいならSendInput()が使えます。

編集 削除
りぅ  2007-06-13 23:11:22  No: 65374  IP: 192.*.*.*

解答ありがとうございます。
解答をいただいてから、
実際にSendInputを試そうとしたのですが、
LPVOIDは定義されていない識別子とエラーが出て実際に試すことが出来ません。
msdnを見て、
winuser32.hをインクルードし、
オブジェクトライブラリモジュールにuser32.libを追加しました。
まだ何か問題があるのでしょうか?
よろしくお願いします。

編集 削除
りぅ  2007-06-13 23:13:10  No: 65375  IP: 192.*.*.*

すみません、書き間違えました。
定義されていない識別子はLPINPUTです。
よろしくお願いします

編集 削除
subaru  2007-06-14 10:11:18  No: 65376  IP: 192.*.*.*

winuser.hのSendInputの宣言の前には
#if (_WIN32_WINNT > 0x0400)
という記述がありますがその辺の設定は合ってますか?
ちなみにkeybd_event()も使えます。

編集 削除
りぃ  2007-06-14 13:20:13  No: 65377  IP: 192.*.*.*

keybd_event()は利用できました.
subaruさんありがとうございます!

編集 削除