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

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

関連記事

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

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

Xamarin.Formsのプロジェクトの構成について~各ファイルの役割や概要について~

<目次> (1) Xamarin.Formsのプロジェクトの構成について  (1-1) プロジェクト構造の概要  (1-2) プロジェクトの初期ファイルの一覧 (1) Xamarin.Formsのプロ …

ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介

  <目次> (1) ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介  (1-1) bootstrapとは?  (1-2) bootstrapの入手方法~プロジェクトへ …

C#からDB接続でSQLServerに接続してSELECT文を実行する方法

<目次> (1) C#からDB接続する方法~SQLServerへの接続プログラム例もご紹介~  (1-1) 構文(DB接続)  (1-2) 構文(SELECT文発行)  (1-3) サンプルプログラム …

ASP.NET MVCのルーティングの基本

<目次> (1) ASP.NET MVCのルーティングの基本  (1-1) 構文  (1-2) サンプルプログラム   ・RouteConfig.cs   ・Controller   ・View  ( …

  • English (United States)
  • 日本語
Top