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#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説

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

no image

C#でコンソールにパスワード入力する際のマスキング処理の実装例のご紹介

  <目次> (1) C#でコンソールにパスワード入力する際のマスキング処理の実装例のご紹介  (1-1) 構文  (1-2) サンプルプログラム (1) C#でコンソールにパスワード入力す …

C#でNLogライブラリを用いてログ出力を行う方法

<目次> (1) C#でNLogライブラリを用いてログ出力を行う方法  (1-1) NLogの概要  (1-2) NLogの導入手順  (1-3) NLogの初期実装手順  (1-4) NLogのサン …

C#のlockとは?意味や使い方とサンプルプログラムをご紹介

  <目次> (1) C#のlockとは?意味や使い方とサンプルプログラムをご紹介  (1-1) 概要  (1-2) 構文  (1-3) サンプルプログラム  (1-4) lockステートメ …

ASP.NETでViewに値を渡す方法

  <目次> (1) ASP.NETでViewに値を渡す方法  (1-1) 方法1:アクションメソッドの引数に追加  (1-2) 方法2:ViewBagを使う方法  (1-3) 方法3:ビュ …

  • English (United States)
  • 日本語
Top