• ベストアンサー

非アクティブな画面を操作する方法について

いつもお世話になっております。 今回は、非アクティブな画面を操作する方法についてご質問させていただきます。 アクティブな画面をVBで操作するのに[SendKeys "{TAB}", True]のように記述すれば当然アクティブ画面では、キーボードのTABキーが押された状態と同じになると思います。 では、非アクティブな画面をVB(VCでも可)で操作する事が可能なのでしょうか? 対処方法や実現方法でも構いません。 何か知っている事がございましたらご教授願います。 環境:VB6.0 SP6

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

どうしてもSendKeyに拘るのなら、処理の間でSleep系のメゾットを使って時間を置きましょう。どれぐらい時間を置けば良いのかはそのPC毎によって異なりますので試行錯誤するしかありません。また他の環境で使う際もその都度微調整する必要があります。 http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html SendKeyよりは高度になりますが、SendMessage や PostMessage が難しいということなら理解するまで勉強しましょう。幾らでも具体的な使い方は懇切丁寧に説明されていますのでまずは検索しましょう。それでも理解できないなら、そもそも無理にプログラムを作ろうとは思わないことです。

basket11
質問者

お礼

ご回答ありがとうございます。 SendMessageを勉強し何とか理解してきました。 徐々にですが、思い通りに動き始めています。 SendKey参考URLまで教えていただき、感謝しています。 SendKeyについても更に勉強になりました。

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

SendKeysでの対応は運に頼る部分が出てくるのでお勧めはされていません。例えばウィンドウが複数ある場合はどうするつもりなんでしょうか? 確実に操作するなら、例えばウィンドウハンドルを取得するとか。 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t02.htm

basket11
質問者

補足

早速のご回答ありがとうございます。 VB/VCを使いはじめて数ヶ月ですのでやっとの思いで[SendKeys]の使用方法を理解しました。 popesyu様からの回答をいただき、試行錯誤しましたが残念ながら力量不足でした。申し訳ございません。 補足として[SendKeys]を使用した場合のプログラムを添付させていただきます。 SendKeys "{DOWN}", True '↓キー押下 SendKeys "{RIGHT}", True '→キー押下 SendKeys "{DOWN}", True '↓キー押下 SendKeys "{TAB}", True 'TABキー押下 SendKeys "%", True 'Altキー押下 SendKeys "{RIGHT}", True '→キー押下 SendKeys "{DOWN}", True '↓キー押下 SendKeys "{DOWN}", True '↓キー押下 SendKeys "{ENTER}", True 'ENTERキー押下 ●SendMessage や PostMessage の使用方法、また、引数のMSGについても理解できませんでした。 大変恐縮ではございますが、もう少しご教授願います。

関連するQ&A

  • エクセルの印刷ダイアログをSendkeysで操作したい。

    エクセルのマクロ処理でフォーム上のボタンから 印刷ダイアログを呼び出して、そのダイアログを Sendkeysでもって両面印刷設定にし印刷させると いう処理を行いたいのですが上手くいきません。 印刷ダイアログが表示された段階で止まり(エラーで 止まるわけではなく単に処理が止まる)、その先の Sendkeysによる命令へ進みません。 Private Sub CommandButton1_Click() Application.Dialogs(xlDialogPrint).Show SendKeys "%r", True SendKeys "%k", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "%r", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True End Sub よくSendKeysは環境によって誤作動などが起こるので 使わない方がいいと言われますが、一度どのように 動くのか試してみたいと思っています。 ちなみに上のコードは当方のプリンタでの設定手順となります。 SendKeysで印刷ダイアログにキーを送ることは できないのでしょうか? 宜しくお願いします。

  • イベントビューアの操作をしたい

    Windows2000ProSP2でVB6SP5を使用しています。 イベントビューアを起動し、「セキュリティログ」を選択して、「操作(A)」-「ログファイルの名前を付けて保存(A)」、それで名前を付けてCSV形式で保存したいのです。 Shell関数でeventvwr.exeを実行して起動した後、Sendkeysでキー操作をすればいいのかと思ったのですが、 できません。 Shell関数の後でイベントビューアが完全に起動するまで待つ必要があるのではないかと思っています。 実現するには、どのようにすればよいのでしょうか? だめ↓ Shell "eventvwr", vbNormalFocus SendKeys "{DOWN}", Wait SendKeys "{DOWN}", Wait SendKeys "%(a)", Wait

  • ExcelVBAでスペースキー操作したい

    sendkeysで、他のアプリケーションにキー操作を送りたいのですが、チェックボックスをオンにするときの【スペースキーを押す】という操作がうまくいきません。 sendkeys "{SPACE}",true ではだめなのでしょうか? よろしくお願いします。

  • IE。キーボード操作だけのネットサーフィン方法

    こんにちは。ちょっと気になったので質問させて頂きます。 パソコンの操作は大抵キーボードだけで出来るように出来ていますよね。 でも、インターネットを全てキーボード操作で行おうとすると そうも行きません。。 私だけなのかも知れませんが、例えばOKWaveのカテゴリ検索を 行いたいとします。 そうするとき、Tabキーを押しっぱなしにしてそこまで行かせるしか 方法は無いのでしょうか? 下キーを押せば画面全体のスクロールは出来ますが、 そこに映っているリンク文字などの選択へは切り替えられないかと思います。(何かキーを押した時点でスクロール前に選択されていた オブジェクトへ戻ってしまう。) その辺りのキーボード操作について詳しい方いらっしゃいませんか? また、関連したノウハウなどご存知でしたら教えて頂きたいです。 よろしくお願い致します。

  • IE操作時、ファイルのダウンロードボタンの押下

    IEをvb.netから操作しています。 webからファイルのダウンロードを自動で行いたいのですが、どのようにすればいいのかわからず悩んでいます。 画像の赤枠で括ってあるボタンの押下を、vb.netからの操作で行いたいのですが、どのようにすれば良いでしょうか。 InternetExplorer.Applicationに何らかのメンバ関数のようなものがあるのか、sendkeysを使うしかないのか、sendkeysを使うなら、具体的にどのキー操作を送れば良いのかなど、お教えいただけないでしょうか。 よろしくお願いします!

  • キー操作の「エンター」に該当するマクロは?

    エクセルでマクロを組んでいます。 キー操作をマクロにしていたところ「エンター」 に該当するコードがわからなかったので操作の確定 ができません。どうすればよいでしょうか? Dim データ, 変数, 行 As Integer データ = Cells(1, 7).Value For 変数 = 1 To データ Cells(変数, 5).Select SendKeys "%O", True SendKeys "+T", True SendKeys "+E", True ここでエンターに該当する操作をしたいんですが・・・ Next Range("A1").Select

  • 【WindowsXP】ようこそ画面をキーボードだけで操作したい

    Win-XP使用者です。 毎日「ようこそ画面」にてパスワード入力しログオンしています。 この時自分は矢印キーにてパスワード入力枠までカーソルを移動させるわけですが、なぜかこれが効かない場合があります。 「Tab」「Alt」「Ctrl」… いろいろ試しましたがダメなときはダメのようです。 そもそも「ようこそ画面」はキーボードだけで操作する設計にはなっていないのでしょうか? お詳しい方、よろしくお願いいたします。

  • ExcelマクロのSendkeysで処理途中に次のキーが送られる

    Excelのマクロから他ソフトのデータを取り入れています。 Sendkeysを使ってソフトのページを切替えたいんですが、ページが切り替わらないうちにページ表示後用のキーが立て続けに送られてしまい旨くいきません。 今やっているのは、起動済みオフラインのIEでHP上の目次からリンクのページ内容をつぎつぎシートへ写す処理です。 SendKeys "{tab}", True    でHPの次行の目次に移って SendKeys "{enter}", True  でページを開いて SendKeys "^{a}", True    全て選択 SendKeys "^{c}", True    コピー この後Excelのシートにテキストで張付ける。 で、IEに戻ってまた"{Tab}"で次行へ移って・・ ところが2番目の"{enter}"で新ページが開き終わらないうちに3,4番目のキーが送られてしまう様です。 ページが開き終わってから次のキーを送るにはどうすればいいでしょうか?

  • ようこそ画面をキー操作で出したい

    Windows XP Proでの操作で教えてください。 ようこそ画面をキー操作ですぐに出したいのですが、どうしたらよいでしょうか。 言い換えれば、ユーザー切り替えがすぐにできればいいのですが、キーボードを交換してしまったため、Windowsキーがありません。そのため、通常のショートカットであるWindowsキー+Lが使用できないのです。 Ctrl+Alt+Aみたいなキー操作で、ようこそ画面がすぐに出てくるようにしたいのです。 できれば、フリーソフトなどを使わずにWindowsの標準的な機能だけで解決したいのですが。

  • SendKeysを使いたい。

    SendKeysを使いたい。 XP-Excel2003です。 Microsoft Bisual Basicのヘルプに記述してある次の構文のうち、 SendKeysが実行されません。 Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) AppActivate ReturnValue For I = 1 To 20 SendKeys I & "{+}", True Next I SendKeys "=", True SendKeys "%{F4}", True F8キーにて、順次実行は出来るのですが、SendKeysが有効になりません。 参照設定の何かにチェックがついていないのだと思います。 その何かを、または別の方法をお教え願います。

専門家に質問してみよう