アプリケーションの自動インストールのバッチファイルを作りたいのですが、いくつかわからないことがあるのでどなたか教えて頂けないでしょうか?まず自動化したい処理は
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で質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン Macのインストールについて 3 2023/05/23 15:02
- ネットワーク 通信量を見たい 3 2023/03/01 07:47
- レトロゲーム 小学生の頃にやっていた未クリアのゲームをプレイしたい 3 2023/05/07 23:37
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- Windows 8 「Windowsの設定画面で開発者モードをONにして下さい」Win8.1でインストールが中断 2 2022/09/10 01:47
- Windows 10 前回の質問の続きです。 あの後、システムのエラーが疑われたのでインターネットで調べて、ドライブのチェ 1 2023/05/21 23:55
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- グループウェア Macでオープンオフィスが開きません 1 2023/01/14 14:22
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
stable diffusionのインストー...
-
VB.NETでDOSコマンドの複数実行
-
gccがコマンドプロンプト上で使...
-
バッチファイル 特定ウインドウ...
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
ドライバーのインストーラーを...
-
EXCELをバッチコマンドで...
-
Visual basic6.0からショートカ...
-
バッチファイル実行時に起動す...
-
バッチファイルからftpを実行時...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
バッチ終了時にDOS窓を閉じるコ...
-
Excel(エクセル) VBA プロシー...
-
VBAでワークシートを引数として...
-
virualboxで仮想マシンフォルダ...
-
大量のフォルダからひとつのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのインストー...
-
バッチファイル 特定ウインドウ...
-
ショートカットの作成とコピー
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
batファイルで立ち上げたaplを...
-
c#でコマンドプロンプトを実行...
-
VB.NETでDOSコマンドの複数実行
-
バッチファイル実行時に起動す...
-
exe間での引き値の受け取り方法
-
VBAからキャッシュを削除する方...
-
64bitのwindowsサーバーで32bit...
-
Shiftキーを押しながら起動
-
pcゲームの優先度の設定につい...
-
プログラムを実行すると、なぜ...
-
PL/SQLで作成したストア...
-
ASPからのEXEファイル起動
-
VB.NETでコマンドプロンプトの操作
-
バッチファイルでAPを終了さ...
-
ドライバーのインストーラーを...
おすすめ情報