- ベストアンサー
GUIアプリをコマンドラインで使う方法
実行すると「アプリケーションを起動させるだけのファイル」は簡単に作成できますよね。(普通のショートカットファイル) では、実行したら「予め記述しておいた動作をGUIアプリケーションにさせられるファイル」を作る方法はないのでしょうか。(バッチファイルのような感じで。) GUI版のソフト(GetHTMLW)などをコマンドライン版ソフト(GetHTML)のように使いたいのです。 例えば、 実行するとIEをただ起動させるだけでなく[文字のサイズ] -> [最大]にチェックが入った状態で立ち上がる。 や GETHTMLW.EXEのパスと、取得したいURLやそのオプションなどを書いておき、そのファイルを実行する。 すると、ただGetHTMLWを起動するだけでなく書いたURLのファイルをオプションに従い取得してくる。 という具合に。(例えばです。)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コマンドというより、スクリプトというのか、ファイルに一連の動作を記述しておくということですよね? 私は使ったことありませんが、WinBatch って、そういうのができるような話を聞いたことがあります。 ↓ http://www.vector.co.jp/soft/win95/util/se085235.html あと、7、8年ほど前、Microsoft から Visual Test というテスト自動化ツールが出ていました。(今はラショナルソフトウェアから Visual Test というものが出てます。) しかし、WinBatch にしても Visual Test にしても、キー入力とかマウスによる操作をエミュレートする方法だと思うので、起動したら既に「文字サイズ=最大」になっている、というふうにはならないと思います。キー入力やマウス操作のエミュレートじゃない方法で操作しようとすると、VBS などでオートメーションを使用することになると思います。 ( Excel の例だと、GetObject("Excel.Application") など)
その他の回答 (2)
- www15
- ベストアンサー率54% (6/11)
外していたら大変申し訳ないのですが 例えば自分で hoge.exe というプログラムを作成して,それに対してコマンドラインで hoge readme.txt とすれば,hoge.exe が「『readme.txtがコマンドライン引数に指定された』と感知する」にはどうするか,という問題でしょうか? それでしたら,何のプログラム言語を用いるかにもよりますが,大体のプログラム言語にはその機能が備わっています。 例えばVisualBasicなら(私が得意なのでこれを例に取りますが),Command という変数にコマンドライン引数が格納されます。ですから,例えばhoge.exeがVisualBasicで作られているとして,hoge.exe中に Shell "GETHTMLW.EXE " & Command, vbNormalFocus と書けば,「GETHTMLW.EXE のコマンドライン引数に,hoge.exeに与えられたものを指定する」ということが可能です。("vbNormalFocus" は分からなかったら読み飛ばされて結構です) なお,少なくともpopesyuさんの「いわゆるGUIアプリをコマンドラインで引数を渡すように操作することはできません。」というのは間違っていると思います。
お礼
ご回答くださりありがとうございました。 >「GETHTMLW.EXE のコマンドライン引数に,hoge.exeに与えられたものを指定する」 これはGetHTMLWが C:\>GetHTMLW -a -b というように、もともとコマンドラインからでも使える事が前提ですよね。 他のこういう事が出来ないGUIソフトは、マウスでボタンをクリックして命令(名前を付けて保存など)を与えますよね。 このような手作業でやる命令をあらかじめ命令用ファイルに書いておいて、その命令を使いたくなった時にはファイルをダブルクリックするだけで手作業で入力したのと同じ作用がある。 というようにしたいわけです。(できれば「マウスやキーボードの操作を記憶する」という方法以外で)
- popesyu
- ベストアンサー率36% (1782/4883)
いわゆるGUIアプリをコマンドラインで引数を渡すように操作することはできません。が、まぁほとんどのその手の小物アプリは外部にiniファイルを持っており、起動の際それを読み込んで起動しますよね。 ということは、先にiniファイルを編集してアプリを起動すれば実質引数を渡すのと同じことになります。これはiniファイルがレジストリになっても同様です。 これが手っ取り早く簡単に作成する方法。batでもvbsでもjsでもtxtファイルの操作は簡単ですし、VBSやJSであれば最初からレジストリを修正できますし、予め用意したregファイルを操作するだけならbatでも可能です。 具体的には文字サイズを最大化する設定の部分のみを書き出したレジストリのファイルを用意しておけば、IEを起動する前にそのファイルでレジストリを変更し、その後IEを起動すれば良いだけです。 本格的に操作したいなら SendKeyとかAPIとかその辺を組み合わせてつくりこむしかないでしょう。 そこまでやるぐらいなら新たにアプリを作り直した方が楽かと思います。
補足
ご回答下さりありがとうございます。念のためですが、iniファイルやレジストリ、その他テキストファイルに記述されている「設定」ならバッチファイルなどでいじれる。 しかしIEでいう[ファイル]→[名前を付けて保存]や、GetHTMLWでいう[取得(G)]→[WebPage取得 Ctrl+W]などの「動作」はコマンドラインで引数を渡すようにはいかない。と言う事でしょうか。
お礼
WinBatchを少し使用してみました。確かに「起動したら既に「文字サイズ=最大」になっている」という、いわゆる起動前に読み込まれる「設定」に関しては出来ないような気がします。 しかし、キー入力をエミュレートする(?)リダイレクト入力という機能がありましたので、起動後に行う「動作」のほうは上手くできるかもしれません。面白いソフトを紹介していただき、ありがとうございました。