プログラムで別のプログラムを操作する方法とは?

このQ&Aのポイント
  • Windows XPで動作するソフトAを自動で操作する方法について検討しています。
  • 現在、テキストボックスへの入力や実行ボタンのクリックを手動で行っているため、作業量が多くなっています。
  • キーボードやマウスの操作を記憶するフリーソフトでは不満があり、自分でプログラムを作成してソフトAを操作したいと考えています。
回答を見る
  • ベストアンサー

あるプログラムから別のをプログラムを操作する方

Windows XPにおいて、ソフトAがあるとします。 このソフトAは実行時に、テキストボックスと実行ボタンからなるウィンドウから構成され、 実行ボタンを押すと、テキストボックスの入力に応じた、特別なファイルを生成します。 現在、「テキストボックスへの入力」「実行ボタンのクリック」を手動で行っているのですが、作業量が多いため、自動で行いたいと考えています。 具体的には、テキストボックスに入力したい文をあらかじめテキストファイルにまとめて作成しておき、自動で次々とファイルを生成したいと思います。 キーボードやマウスの操作を記憶するフリーソフトを試してみましたが、ウィンドウの位置を合わせなくてはならない、実行中他の操作が一切できない、実行中の進行具合が見づらい、テキストファイルのエラーチェックができないなど、こまごまとした点で不満が残ります。 そこで、自分でプログラムを作成し、ソフトAを操作するようなプログラムを作りたいと思うのですが、どのようなものが必要でしょうか?

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

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

http://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/06.html http://hp.vector.co.jp/authors/VA016117/hook.html VisualC++があればできると思いますけど...ソフトAによるかな。

wanabe_hiki
質問者

お礼

回答ありがとうございます。 C/C++でコンソールプログラムは多少作ったことはあるのですが、ウィンドウやGUIといったものはほとんど触れたことがないので、何から手を付けていいか途方に暮れていました。 フックという概念を中心に調べてみようと思います。

関連するQ&A

  • exeファイルをプログラムから操作する。

    お世話になります。 VisualStudio2019(C#またはVB)で下記を実装したいと思っています。 ①あるプログラム(1.exe)のフォーム内にいくつかある指定のボタンを押す。  ⇒ウィンドウを取得、ウィンドウハンドルを取得してボタン押下 ②①の操作でプログラム(2.exe)が起動する。 ③2.exeプログラムの複数あるテキストボックスの中から指定のテキストボックスに文字を入力  ⇒ウィンドウを取得、テキストボックスのウィンドウハンドルを取得してテキストに値をセット いろいろサイトを探したのですが、「まさにコレ」といったものがなく困っています。 もしご教授いただければ幸いです。 よろしくお願いいたします。

  • ネットサイトの参照、入力などの操作のプログラム言語

    ネットの各種操作の自動操作プログラムを作成したいと思っております。 具体例として、 ◆以下の機能を個別に作成し、他のプログラムから呼び出せたりしたい。 ・Webサイトログイン ・テキストボックスを指定して入力 ・ボタンを指定して入力 ・指定したデータの取得 ほかにも、人間がウェブブラウザで出来る事をプログラムで書ける言語、そして、実現の方法を教えていただきたいです。 別の言い方をすると、MT4という自動売買ツールを使っています。 そのツールで、出た売買シグナルに基づいて、取引サイトにアクセスし、売買を入力して実行する機能。 シグナルをブログに自動で投稿する機能。 シグナルを自動でメール配信する機能。 などを実現したいです。 参考になるお話ならいくらでも伺いたいです。 よろしくお願いいたします。

  • win32プログラム

    bcc developer(テキストエディタ)の使い方を教えてください。 1 新規作成 → プロジェクト名(aにする。) 2 新規作成 → c/c++ファイル名(a.cppにする) 3 プログラム入力 4 コンパイル 5 メイク まで、うまくいきましたが、実行ボタンが白黒になっていて ボタンが押せません。 どこが間違っているんでしょうか? 教えてください。

  • python3.2で外部プログラムを実行&操作

    民安TALKという音声読み上げソフトを実行&操作するプログラムがあります。これをpythonで書いてみようと思ったのですが、どうすればいいのかがわかりません。 <環境など> 民安TALK(ソース) http://uep.s321.xrea.com/src/index.html OS:Windows7 version:python3.2 <具体的にどうしたいのか> テキストを入力し、再生ボタンを押すとテキストを読みあげるプログラム(.exe)に対し、そのプログラムがまだ起動していなかったら起動して、テキストを入力し、再生ボタンを押すということをやりたいです。ちなみに再生ボタンにはショートカットキーは設定されてません。 現在、プログラムを起動するところで詰まっています from subprocess import Popen p = Popen("絶対path") とすると外部プログラム(.exe)を実行できると思うのですが、これだと設定ファイルの読み込みに失敗してしまいます。pythonからではなく、コマンドプロンプトでカレントディレクトリをその外部プログラムのあるディレクトリに移動しプログラム名.exeとすれば実行できます。

  • VBSのプログラム

    VBSのプログラムで質問です。 (1)ラジオボタンA、B (2)テキストボックス があって、 Aを選択するとテキストボックスが入力可能になり、 Bを選択するとテキストボックスが入力不可能になるプログラムを作りたいのですが、 どのようなプログラムを作ればいいでしょうか?

  • 別アプリケーションの操作

    こんにちは。 タイトルの件についてお聞きしたいことがあるのでよろしくお願いします。 既存のVB.netアプリケーションがあります。 ログイン画面があるのですが、毎回入力するのが面倒なので、自動ログインツールを作成しようと思っています。 ツール側もVB.netです。 そこで、別のアプリケーションのテキストボックスやコマンドボタンの操作というのはどのようにしたらいいのでしょうか? 既存アプリケーション側は変更したくありません。 どなたかアドバイスよろしくお願いします。

  • プログラム実行時の確認は

    今まではコンボボックス内をセレクトしたあとすぐに計算を実行して表示するプログラムだったのですが、テキストボックスにデータを入力後ボタンを押したときに計算を行うように変更しようとして、新規に作成したボタンの「Private sub Command1_Click()」にコンボボックス内に書いていたプログラムをコピーして実行したのですが、ボタンを押してもエラーで止まるわけでもなく、しかし、実行結果を表示するでもなく、まるでループにでも入っているようなのですが、実行中にどこでどうしているか確認する方法を教えてください。

  • コマンドプロンプト上で動作するプログラムを別プログラムから操作する方法

    コマンドプロンプト上で動作するプログラムを別プログラムから操作する方法を考えています。 たとえば、C言語の入門書によく見られるような、以下のプログラムを作ったとします。プログラム名をtest.exeとします。 ・ユーザーに数字を入力させ、その数字の2倍を答えとして表示する。 ・答えを表示したらまた入力まちになる。 ・ユーザーが"q"を入力すると終了する。 test.exeを実行すると、コマンドプロンプトが起動し、数字の入力まちになります。 さて、ここからが質問です。 このプログラムをVBAなどの別のプログラムから実行する方法はないのでしょうか?このプログラムは、数個の数字を入力するくらいだったら手動でも問題ありません。しかし、数十個、数百個の数字を入力する必要があった場合、これを手動でやっていては埒が明きません。そのため、VBAやその他のプログラミング言語などから自動的に数字を入力していくプログラムは作れないかと考えています。 たとえばVBAなどでFor文で入力する数字を繰り返す。といった感じ。 このようなことを実現する場合、どのように考えていけばいいのでしょうか?正直、今現在、想像もできていません。 考え方や、方法を教えてください。また、できるとしたら、そのプログラミングレベルはかなりのものを要しますか?一応私はプログラミングやVBAは初心者の部類です。 よろしくお願いいたします。

  • VB6のプログラムを助けてください…

    いつもお世話になっております。 みなさんの知恵を貸してください。 よろしくお願いします。 現在、VB6のプログラムを作成しています。 以下の質問のプログラムを作成したいですが、どのようにプログラムを 作成していいのか分かりません。 ~質問内容~ ☆ 機能仕様     シリアル通信送信側のプログラムを作成する。 ☆ 通信仕様     ターミネータ:CR(キャリッジリターン) ☆送信側のプログラム  1-a.フォーム上に以下のコントロールを追加する    ・ポート番号設定用テキストボックス    ・ポーレート設定用コンボボックス    ・コマンド送信文字列入力用テキストボックス    ・「送信」ボタン  1-b.ボーレート設定用コンボボックスは、9600、19200、38400の     3パターンのリストで構成する。それ以下の値は入力させないようにする。  1-c.「切断」ボタンでポートを閉じる。  1-d.「送信」ボタンでコマンド文字列入力用テキストに入力された文字列をターミネータを付けて送信する。 分かる範囲でよろしければ、教えてください。 よろしくお願いします。

  • 特定のウィンドウに対するマウスやキーボード操作を制限する方法

    Windows上で動くGUI自動操作ツールを作ろうと考えているのですが、 一箇所懸念点がございます。 AというGUIアプリをプログラムから自動操作しようとした際に、 以下のようになる認識です。 1.自動操作ツールよりプログラムAを起動する 2.Aのウィンドウがオープンしたら、Aのウィンドウ上のコマンドボタンや テキストボックスに対して、Win32APIの擬似マウス移動命令や、 擬似クリック命令を送信して自動操作する。 3.自動操作ツールよりプログラムAを終了させる ここで、上記手順の2にてAのウィンドウを自動操作しているときに、 ウイルスチェックアプリなどの別のアプリがウィンドウを最前面 で開いてしまったとき、擬似マウス・キーボード命令がすべて その新たなウィンドウに行ってしまいます。 このような状況を回避するにはどのような手法があるのでしょうか?

専門家に質問してみよう