Windows8でSendInput関数を使ってショートカットを呼び出す

こんばんは。

良いタイトルが思い浮かばず、長ったらしくなってしまいました。
Windowsでは、プログラムを使ってキーボードやマウスなどの入力を再現するために、SendInputという関数が用意されています。
これを使って、Alt+Tabによる画面切り替えを行うプログラムを作っていたのですが、新しく買ったパソコンでは、SendInput経由ではショートカットが発動しなくなってしまいました。
原因はWindows8にあるそうです。

解決策として、マニフェストでuiAccess=trueを指定する、というのがあるようですが、これを行うには証明書が必要らしく、僕のような一般人には手が出せない模様。

どうしたものかと悩んだ結果、次のように解決しました。

1.ショートカットを新規作成し、リンク先を
%windir%\explorer.exe shell:::{3080F90E-D7AD-11D9-BD98-0000947B0257}
にする

2.プログラムからこれを実行する

これだけです。
動くようにはなったのですが、キーボードから実行した場合と比べると、明らかに実行が遅れます。

解決策をしっている人がいたら是非教えて下さい。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中