using System; using System.Drawing; using Arp.Prova.ImageLibrary; using Arp.Prova.CsvLib; using Arp.Prova.PlayLib; using System.Text; using System.IO; //このサンプルコードは、スタートアップフォルダにSetup.exeを動作させるためのバッチファイルを作成し //自分自身(bat)を削除します public class CodeClass { public static int CodeStart() { //バッチファイル名 string sBatName = "SetROBO.bat"; //再起動後に起動するSetup.exeのファイルパス string sSetupPath = @"C:\SetupPakege\setup.exe"; //スタートアップのファイルパスを取得 string sStartupPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonStartup); //バッチファイルのパス string sBatPath = sStartupPath + '\\' + sBatName; /************************ここから設定の変更を行います************************/ //エンコードの種類をShift_JISに設定 Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); //ファイルの作成 StreamWriter writer = new StreamWriter(sBatPath, false, sjisEnc); try { //ファイルにスクリプトを書き込む //再起動後に実行するファイルのスクリプト //再起動後、OSが安定するまで待たせる //サンプルでは、2分間(120秒)としています writer.WriteLine("timeout /t 120 /nobreak >nul"); //Setup.exeを実行させるスクリプト writer.WriteLine("\"" + sSetupPath + "\""); //実行後、バッチファイル自身を削除する為のスクリプト writer.WriteLine("Del /F \"%~dp0%~nx0\""); } catch(Exception e) { //ファイルの書込みでエラーが起きた場合 //エラー内容をログに書き込む PlayLib.TestLogError(e.Message); PlayLib.TestLogError(e.StackTrace); //スクリーンキャプチャ取得 PlayLib.ScreenCapture(); } finally { //try...catchから抜けるときは、必ずfinallyが実行されます //writerを閉じる writer.Close(); } //作成したBatファイルが存在するかチェックする if(PlayLib.CheckValue(System.IO.File.Exists(sBatPath), true, true) == false) { //作成したBatファイルがない場合 PlayLib.TestLogError("Batファイルの作成に失敗しました。"); return -1; } return 0; } }