アプリケーションの自動インストールのバッチファイルを作りたいのですが、いくつかわからないことがあるのでどなたか教えて頂けないでしょうか?まず自動化したい処理は
1. Setup.exeを起動する
2. インストーラダイアログボックス内のNext(次へ),Back,キャンセル等ボタンを押すのを自動化する。ALT+N みたいなのを自動化したいです。
3. アプリケーションのリソースdiscが3枚あるので、dick1(setup.exeが入ってる)のインストールが終わったら、disc2をブラウズするように聞いてくるのでバッチファイルでパス名を指定して自動で開かせる、おなじくdisc3も処理させる。
以上です。当方初心者なものでして、1はできたのですが、2からできませんでした。いろいろ調べては見たのですが回答を見つけること出来ず。。。お手数ですがどなたか教えてください。どうかよろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんにちは。
ANo.3 の回答にある UWSC で No.1, 2, 3 のいずれもスクリプトによる自動化が可能です。
類似のオペレーションを UWSC で自動化したスクリプト例をお見せしますので雰囲気を感じてもらえれば幸いです。
(スクリプトの動作概要)
タスクを一件登録します。ログイン時に notepad.exe を起動するタスク「タスク Notepad 起動」を作成登録します。
(コメント)
★1 実行の経過を確認しながら進めるときは true を設定
★2 起動時の実行ユーザのパスワード情報を設定
★3 質問者の No.1 のコーディング例
★4 質問者の No.2 のコーディング例
★5 質問者の No.3 のコーディング例
(スクリプト)
const _debug = false // ★1 false → true (経過をダイアログ表示)
dim wid
dim waits = 0.1
dim pw = "パスワード" // ★2 パスワードを設定する
confirm("タスクを開きます...")
wid = EXEC("explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}") // ★3
confirm("タスクウィザードを開きます...")
CLKITEM(wid, "スケジュールされたタスクの追加", CLK_DBLCLK)
SLEEP(waits)
wid = GETID("タスク ウィザード", "#32770")
CLKITEM(wid, "次へ", CLK_BTN or CLK_SHORT) // ★4
confirm("参照から Notepad を選択します...")
while CHKBTN(wid, "参照") = -1
SLEEP(waits)
wend
CLKITEM(wid, "参照", CLK_BTN or CLK_SHORT)
SLEEP(waits)
wid = GETID("実行するプログラムを選択してください", "#32770")
SENDSTR(wid, "c:\windows\system32\notepad.exe") // ★5
SLEEP(waits)
CLKITEM(wid, "開く", CLK_BTN or CLK_SHORT)
SLEEP(waits)
confirm("スケジュール設定を行います...")
wid = GETID("タスク ウィザード", "#32770")
SLEEP(waits)
SENDSTR(wid, "タスク Notepad 起動")
SLEEP(waits)
CLKITEM(wid, "ログオン時", CLK_BTN or CLK_SHORT)
SLEEP(waits)
CLKITEM(wid, "次へ", CLK_BTN or CLK_SHORT)
SLEEP(waits)
confirm("認証情報を設定します...")
SENDSTR(wid, pw, 2)
SLEEP(waits)
SENDSTR(wid, pw, 3)
SLEEP(waits)
CLKITEM(wid, "次へ", CLK_BTN or CLK_SHORT)
SLEEP(waits)
confirm("終了しました (Exiting...)")
CLKITEM(wid, "完了", CLK_BTN)
SLEEP(waits)
procedure confirm(s)
if _debug then MSGBOX(s, BTN_YES, 10, 10)
fend
No.4
- 回答日時:
No.2です。
VBSを実行したらノートンが反応してしまいましたか。うちのウイルスバスターは反応しないので、ノートンは厳しいのですね。
Setup.exeがサイレントインストールに対応しているのなら手っ取り早いです。サイレントモードでの実行方法はアプリごとに異なるので、どうしたらいいかは調べていただくしかないですが、下記のURLに何かヒントがあるかもしれません。
http://www.geocities.jp/hxbsrejoh/
ここの一覧にないアプリでも、InstallShieldなど、汎用のインストーラ作成ソフトでSetup.exeが作られているのなら、このURLの下の方に書いてある方法でサイレントインストールができるかもしれません。
No.3
- 回答日時:
情報ありがとうございます!!なるほど、こういう便利なものがあるのですね!でもこれって他の人のPCでも同じように実行できるのでしょうか?環境が違うPC上でもちゃんと動作させたいものでして。
No.2
- 回答日時:
WSHのSendKeysを使えばできないでしょうか?
下記のURLの例ではメモ帳を起動していろいろやってますが、notepade.exeでなくSetup.exeを起動して、その後のキー操作をSendKeysで記述すればいいかもしれません。ダイアログの表示を待つ例も載っています。
http://www.atmarkit.co.jp/fwin2k/operation/wsh05 …
WSHを使うのがはじめてであれば、サンプルをとりあえずコピーしてtest.vbsのように拡張子vbsをつけて保存し、そのまま実行すればいいでしょう。バッチから呼び出すなら、
cscript test.vbs
などと書けばいです。
もっともNo.1の方の仰る通り、ユーザが途中で何か操作をしてしまえばだいなしなので、完璧とはいきませんが。
情報ありがとうございます。今日職場の人に聞いたらScriptitなるものがあって、これに近い感じでした。詳しいやり方はわかりませんが。あと、このサイトのスクリプトを拡張子VBSで実行するとノートンがウイルス検知してしまいました。アプリの自動化を自分の友達に使いたいので、できるばノートンが起動しない方法が好ましいのですが。自分のPCだとノートンで許可しちゃうばそれでOKなのですけど。
それとインストールしたいアプリのSetup.exe /?でオプションを確認して、サイレントモード??みたいなのがあって、それを使うと簡単に自動インストールするとも聞いたのですがそうなんでしょうか??
とにかくすごく参考になりました。いろいろ模索してみたいと思います。
No.1
- 回答日時:
そうなんですよね。
自動、複数アプリケーションインストーラ作りたいですよね。
私も簡単な作り方があれば知りたいです。ホント。
しかし。
実際の話、インストーラの…といいますか。
Aアプリケーション(バッチ)から、Bアプリケーションの「画面を」
直接操作させることは、VBなどでいうKey押下情報のSendだけでは
不十分です。これはユーザが変な画面操作を割り込みで行うと
バッチ側の制御が破たんするからです。
そこで。技術的には。
Aアプリケーション(バッチ)はBアプリケーションを同期起動する
とともに、BアプリケーションのWindowsハンドルを取得し、かつ、
ボタンのコントロール名かIDで制御することが必要なのでして。
…高度というか、面倒くさいCプログラミングをゴリゴリ書くことが
必要だと思います。
私の場合は、そこまで作るのが面倒ですので。
インストーラを利用せず、全部バッチでがっさりコピーし、
レジストリをいじる様な一括バラバラコピーバッチを利用するか、
Shellメニューを作ることで逃げています。
私もいいやり方があれば教えてほしいですね。
この回答への補足
yama-takuさん、早い回答ありがとうございます!!
>えっと、Aアプリケーション(バッチ)から、Bアプリケーションの「画面を」直接操作させることは、VBなどでいうKey押下情報のSendだけでは不十分です
とありますが、職場の人はこれでやってた気がします。これだと一応バッチファイルだけで可能なんですか?VBはよくわからないので。。。
もしこのやり方で可能ならば、できたら教えて頂いてよろしいでしょうか?
お手数かけて本当にすいませんです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
batファイルで立ち上げたaplを...
-
起動しているmdbよりバッチでレ...
-
Rubyスクリプトから他のプログ...
-
バッチファイル実行時に起動す...
-
WSHで空白を含んだコマンドの指...
-
RUNASコマンドを使って、自動的...
-
createprocessで起動させる別.e...
-
ショートカットの作成とコピー
-
バッチファイル エクセル起動
-
VBScriptで32ビットIEの起動の...
-
VB.NETでDOSコマンドの複数実行
-
よい方法あるでしょうか?
-
VBSでコマンドプロンプトのカレ...
-
keytool.exeを起動するには
-
ExcelVBAにてアプリをタスクマ...
-
バッチファイルからftpを実行時...
-
MP3 Walker Lyrics Editorが起...
-
バッチへ値を返す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
stable diffusionのインストー...
-
VB.NETでコマンドプロンプトの操作
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
64bitのwindowsサーバーで32bit...
-
gccがコマンドプロンプト上で使...
-
バッチファイルからftpを実行時...
-
VBAからキャッシュを削除する方...
-
UWSCについて
-
ショートカットの作成とコピー
-
exe間での引き値の受け取り方法
-
バッチファイルで実行ファイル...
-
BASP21 で 外部プログラムが実...
-
createprocessで起動させる別.e...
-
VBAでwindowsメールを起動させたい
-
Shiftキーを押しながら起動
-
バッチファイル、順番を指定し...
おすすめ情報