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-4) 方法②サンプルプログラム ( …

SOAP通信の仕組みやHTTPプロトコルとの違いなど

  <目次> (1) SOAP通信の仕組みやHTTPプロトコルとの違いなど  (1-1) SOAPとは?  (1-2) SOAPを構成する要素  (1-3) SOAPの通信の仕組み&HTTP …

C#で文字列をタブやスペースで区切り配列に格納する方法

<目次> (1) C#で文字列をタブやスペースで区切り配列に格納する方法  (1-1) 基本構文  (1-2) 基本構文サンプルプログラム  (1-3) 応用構文  (1-4) 応用構文サンプルプログ …

Xamarin.FormsでHelloworldする手順+Buttonコントロール追加のサンプルコード紹介

<目次> (1) Xamarin.FormsでHelloworldする手順  (1-1) Xamarin.Formsプロジェクト構成の概要  (1-2) MainPage.xamlの修正  (1-3) …

C#のvarとは?型を調べる方法や制約事項についてもご紹介

<目次> (1) C#のvarとは?型を調べる方法や制約事項についてもご紹介  (1-1) C#のvarとは?  (1-2) サンプルプログラム:varの基本動作確認#1  (1-3) サンプルプログ …

  • English (United States)
  • 日本語
Top