掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
vistaでsendkeysがうまく動作しない (ID:100693)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> vistaで動かすとうまくいったりいかなかったりでどうもうまく動きません SendKeys のグローバル ジャーナル フックの問題かな…。 でも、Vista 向け VB6 ランタイムは、SendKeys が動くように対策済みだったはずだし…。 (ちなみに Vista 対策版 SendKeys は、内部で SendInput API を利用しています) まぁ、うまくいくこともある、という事は、別の問題なのでしょうけれども。 ちなみに、Office 2003 は、Service Pack 3 で解決済み。 http://support.microsoft.com/kb/938792/en-us .NET Framework 1.1 は、下記のアップデートで。 http://www.microsoft.com/downloads/details.aspx?FamilyID=59b18749-74f9-4891-8cb5-b22970b58aa9&displaylang=ja .NET 2.0 は最初から対策済み。.NET 1.0 は Vista 非対応。 > どうも他の窓に制御が行ってるようなんです そもそも SendKeys は、対象のウィンドウに直接キーを送りつけているわけでは 無く、キー操作のエミュレートに過ぎないため、処理タイミングなどの外的要因により、 処理が失敗する可能性が比較的高いものです。あまり多用すべきものでも無いかと。 > とにかく正確にキー入力したいんです。 まず、対象のウィンドウをアクティブかつフォアグラウンドにしておきましょう。 また、SendKeys の第二引数の扱いにも注意。 それで駄目なら、SendInput API を直接呼びだすことも検討してみてください。 なお、対象となるウィンドウによって、別の方法で代用できる可能性もあります。 たとえばテキストボックスの場合は、キー操作の代わりに WM_SETTEXT を送るとか、 ボタン押下なら、IAccessible インターフェイスの accDoDefaultAction メソッドを 使うなどした方が、より確実に操作できるかと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.