C++でアプリのツールバーのボタン操作する方法

このQ&Aのポイント
  • C++言語プログラムからファイルや印刷などのツールバー上のボタンを自動的に操作する方法を解説します。
  • C++言語プログラムでアクティブなウィンドウの名前を取得する方法について説明します。
  • C++言語プログラムを使用して、アクティブなウィンドウから別のウィンドウに切り替える方法について解説します。
回答を見る
  • ベストアンサー

アプリのツールバーのボタンをC++で操作したい。

ある市販のWindowsアプリケーションソフトのツールバー上に、繰り返して定型作業的にマウスでクリックするボタンがあります。これを自動的に行うことを考えています。 1)例えば、ファイル(F)→ 印刷(P)の場合には、キーボードから ALT+F → ALT+P と押せば同じ動作が可能です。これを、キーボードからではなく、自作のC++言語プログラムから動作させるのには如何にすれば良いのでしょうか? 2)アクティブなウィンドウのウィンドウの名前(左上のバーに書かれている名前)を自作のC++言語プログラムで取得するのにはどうすれば良いのでしょうか? 3)選択されているアクティブなウィンドウから、別のウィンドウに切り替えるには、自作のC++言語プログラムでは如何に記述しますか? よろしくお願いいたします。

  • teo98
  • お礼率27% (68/244)

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

1)keybd_event()を使用します。 2)GetForegroundWindow()でアクティブなウィンドウのハンドルを取得し、GetWindowText()で取得します。 3)別のウィンドウのハンドルを取得し、SetForegroundWindow()を呼び出します。 ただし、OS(Win98以降)によってはこれだけだとタスクバーで点滅するだけかもしれないので、その場合はAttachThreadInput()で現在のアクティブなスレッドにアタッチする必要があります。

teo98
質問者

お礼

おかげさまでプログラムが出来ました。

関連するQ&A

  • 言語バーがツールバーにありません。

    言語バーがツールバーにありません。 このサイトを見て下記のようなことをしても解決しませんでした。 「コントロールパネル」→「地域と言語のオプション」→「キーボードまたは入力方法の変更」→「キーボードと言語」→「キーボードの変更」→「言語バー」→「デスクトップ上に表示する」という項目にチェック。 パソコンはvistaです。 ※ユーザーを3つに分けていますが、2つは言語バーがツールバーの中に存在しており言語バーを利用するのが可能です。

  • MS-IMEのツールバーが消えた

    MS-IMEのツールバーをデスクトップで使用していました。 突然、ツールバーそのものが消えてしまい、復活できません。 過去の「教えてgoo」の質問では、コントロールパネル、キーボードから言語バーの表示ということで復活すると書いていますが、自分のPCのキーボードの設定に言語バーの表示画面はでません。ちなみに、WindowsXPはSirvicePack3です。 キーボードのボタンは機能しています。

  • C言語のファイル操作について

    C言語でいま、デスクトップのファイルを読み込むプログラムを作っています。 しかし、Windows7ではデスクトップはDesktopフォルダですし、WindowsXPではデスクトップフォルダです (つまりWindows7では%userprofile%\desktopなのに対し、WindowsXPは%userprofile%\デスクトップ であるということです) このような場合に、どちらでも動作するソフトを作るには、どのようにすればよいのでしょうか?

  • IMEツールバーがおかしい

    IMEツールバー Microsoft IME 2000を 使っていましたが、カナとcap以外バーから なくなってしまいました。 他の方の投稿も見て、キーボードからタスクバー表示 を試したりしましたが、治した時は以前と同じものが 出ますが、ページを閉じると消えてしまいます。 今は、右下のバーにJPだけ残っています。クリック して表示を設定しても出てきません。 そんなことでいろいろ試していますが OD;4F4C;000014E7というエラーがでます。 今は、ローマ字入力しか出来ないし、とても 不便です。関係ないかもしれませんが、このところ すごくネット接続も遅い気がします。 どこを治したらいいのでしょうか? Windows Me で ノートPC使用です。

  • ツールバー&言語バーの固定について・・・・・

    Windows XP SP3 を使用しています。 言語バーをツールバー内に挿入して使用していますが、PCを立ち上げ直す毎に言語バーがツールバーの後ろに隠れて使い難い思いをしています。 ツールバーの外に取り出してしまうと、画面上で邪魔になってしまうし・・・・・ その為、毎回ツールバーの固定を解除して手動移動し直すと言う状態になっています。 なにとぞ、御指南よろしくお願いします。

  • P.C.の「アルファベット-ひらがな変換バー」について。

    標記の件(IME)で質問です。 通常はバーが画面の右下に表れるのですが、ある日突然消えてしまいました。 ALT + 半角/全角を押してもバーは表れません。 当然ひらがな入力はできず、アルファベット入力しかできません。 ところが、再起動をすると一時的にバーが表れて、P.C.が完全に立ち上がった状態になるとまた消えてしまいます。 自宅のP.C.はWINDOWS XPで、コントロールパネル→キーボードと進んでも、プロパティーのタブの中に入力ロケールという項目が存在せず、バーを復活させることができないのが現状です。 入力ロケールに相当するものが、WINDOWS XPには存在するのでしょうか?

  • ツールバーに!!

    ツールバーにBegin2Search.com Barとゆうのが消えず困ってます。プログラムの追加と削除からそれらしい名前のものを探してみましたが見つけることができませんでした。スパイウェア検索ソフトも使って怪しい物は削除しましたがダメでした。なんとかお願いします

  • ツールバーから言語バーが消えて復活できません。

    Windows Vista home32bit sp.2 IE9.0で突然ツールバーから言語バーが消えてしまいました。 通常の通りにツールバー上で右クリック→ボックスの言語バー(チェック有り)のチェックを消して 再度チェックを入れようと思いクリックしたら今度はボックスの中の言語バーが無くなってしまいました。 システムの復元をしても言語バーは現れず。右クリックすると前延と同じ様にボックス(チェックされた言語バーの表記あり)が出ますが言語バーをクリックすると又消えてしまいます。 どの様にすれば復活するでしょうか? ご存知の方がいればご教授をお願いします。

  • ツールバーの「言語バー」表示、非表示

    こんにちは。初心的な質問かもしれませんが・・・ Win2000でメモ帳やエクセル等を使用している状態で、 画面下のツールバーに言語バー(ATOKとかIMEとか)を表示・非表示させるにはどうしたらよろしいでしょうか? Win・XPではツールバーのところで 右クリック → 言語バー のチェックボックスをオン・オフする だけでOKでしたが、Win2000ではその項目がありません・・・(?) キーボードの「半角/全角」切り替えで日本語入力はできますが、 言語バーがないと今はどの状態なのか分からなくて困っています。 よろしくお願い致します。

  • 自作ツールバーの削除したい

    自作のツールバーを消したいのですが、うまくいかないので教えてください。 マクロで自作ツールバーが表示されるようにしました。 マクロが書かれているエクセルファイルは、 C:\Program Files\Microsoft Office\OFFICE11\XLSTART に置きました。 それで、エクセルを起動すると、マイツールバーも立ち上がるようにしました。 自作ツールバーの作動がおかしくなったため、XLSTARTからエクセルファイルを削除しました。 しかし、自作ツールバーは、表示されてしまいます。 ユーザー設定のツールバーから削除しても、しばらくすると現れたりします。 どこかに、情報が残っていて、現れてくると思われます。 どうすれば、完全に抹消できるか教えてください。お願いいたします。

専門家に質問してみよう