Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C#

ソフトウェアをインストールするバッチプログラムのご紹介

投稿日:2022年6月28日 更新日:

 

<目次>

(1) ソフトウェアをインストールするバッチプログラムのご紹介
 (1-1) 概要
 (1-2) 構文
 (1-3) サンプルプログラム
 (1-4) (応用)プロキシサーバがある場合

(1) ソフトウェアをインストールするバッチプログラムのご紹介

ソフトウェアのインストールをワンタッチで自動化(or半自動化)したい時に活用できるかもしれないサンプルプログラムをご紹介します。

例えば、以下のようなユースケースで活用できる可能性があります。
・企業で多くの人にソフトのダウンロードを促す必要があるケース
・セキュリティ事情等により毎回ソフトウェアがクリアされて再インストールが必要なケース

(1-1) 概要

(前提)

(1-2) 構文

●①インターネットからzoomのインストーラをダウンロード

WebClientクラスは、インターネット(orローカル)に対してURIを指定してのデータ送受信を行うためのクラスです。WebClientを使う事で、インターネット上のURLのコンテンツをHTML形式でダウンロードしたり、URLを指定してファイルをダウンロードしたり出来ます。
内部的には「HttpWebRequest」というクラスをベースに作られており、汎用的なWeb操作(コンテンツのダウンロード、ファイルのダウンロードなど)を簡易的に呼び出せるようクラス化したものです。
 
(構文例)
//# xxxxのインストーラをダウンロードするURLを引数に指定して、インストーラをダウンロード
client.DownloadFile("https://XXXX.exe");
//# 指定のURLのコンテンツをHTML形式の文字列でダウンロード
var content = client.DownloadString("https://xxxxxxx.html");
(図121)

●②ダウンロードしたインストーラを起動してインストールを実施する

Processクラスは、ローカルやリモートのプロセス(≒メモリ上にロードされた「実行中のプログラム」)に対してアクセスを提供します。
 
(構文)
Process.Start([exeファイルのパス]);
(図122)

(1-3) サンプルプログラム

(サンプルプログラム)
using System;
using System.Diagnostics;
using System.Net;
using System.Reflection;
using System.Threading;


namespace TestDownloadApp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("---(1) Zoom Client のダウンロードを開始します");
                //### ①インターネットからzoomのインストーラをダウンロード
                //# WebClientクラスのインスタンスを生成
                using (var client = new WebClient())
                {
                    //# ZoomのインストーラをダウンロードするURLを引数に指定して、インストーラをダウンロード
                    client.DownloadFile("https://zoom.us/client/5.9.3.3169/ZoomInstaller.exe?archType=x64", "ZoomInstaller.exe");
                    //# 指定のURLのコンテンツをHTML形式の文字列でダウンロード
                    var content = client.DownloadString("https://docs.oracle.com/javase/8/docs/technotes/guides/idl/GShome.html");
                }

                Console.WriteLine("---(2) Zoom Client のインストールを開始します");
                //### ②ダウンロードしたインストーラを起動してインストールを実施する
                //# Process.StartでEXEファイルを指定して起動します。
                //# インストーラは、プログラムのEXEと同じ階層にダウンロードされるため
                //# そのパスを「System.IO.Path.GetDirectoryName」で取得します。
                //# 最後にEXEの名前(ZoomInstaller.exe)を繋げてフルパスで指定します。
                var installer_path = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                Process.Start(installer_path + "\\ZoomInstaller.exe");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Thread.Sleep(2000);
        }
    }
}
(図131)

(動画132)

目次にもどる

(応用)プロキシサーバがある場合

 
プロキシサーバがある場合の認証の方法については、こちらの記事で紹介しています。
 
→(解説)C#で407 Proxy Authentication Requiredエラーが出た時の対処方法(★)

Adsense審査用広告コード


Adsense審査用広告コード


-C#

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

C#のコンソールアプリで引数を与えて実行する方法

<目次> (1) C#のコンソールアプリで引数を与えて実行する方法  (1-1) 設定箇所  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#のコンソールアプリで引 …

C#のIComparerの実装方法や用法について(サンプルプログラムあり)

<目次> (1) C#のIComparerの実装方法や用法について  (1-1) IComparerの概要  (1-2) STEP0:比較をするクラスの定義  (1-3) STEP1:ICompare …

C#でフォルダ内のファイルの一覧を取得する方法

<目次> (1) C#でフォルダ内のファイルの一覧を取得する方法  (1-1) 方法①構文  (1-2) 方法①サンプルプログラム  (1-3) 方法②構文  (1-4) 方法②サンプルプログラム ( …

C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説

<目次> (1) C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説  (1-1) IEnumerableとは?  (1-2) IEnumerableの実装の流 …

ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法

  <目次> (1) ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法  (1-1) やりたい事の整理  (1-2) ViewModelを使った複数モデルの連携 …

  • English (United States)
  • 日本語
Top