/// <summary> /// アプリケーション /// </summary> public App() { // コマンドライン引数の解析 m_commandLine = LogTailerCommandLine.Analize( Environment.CommandLine ); if( m_commandLine == null || m_commandLine.IsValid() == false ) { // ファイルオープンダイアログで設定ファイルを選択する var openFileDialog = new OpenFileDialog() { InitialDirectory = Path.Combine( Environment.CurrentDirectory, @"Settings" ), FileName = Path.Combine( Environment.CurrentDirectory, @"Settings\Sample.xml" ), DefaultExt = "*.xml", Title = "設定ファイルの読み込み" }; if( openFileDialog.ShowDialog() == true ) { var args = string.Format( "exe {0}", openFileDialog.FileName ); m_commandLine = LogTailerCommandLine.Analize( args ); } else { // 設定ファイルを指定しなかった場合は終了 return; } } // 設定の読み込み var root = DataSettingLoader.ProjectLoad( m_commandLine.SettingFilePath ); if( root == null ) { var message = string.Format( "設定ファイルの読み込みに失敗しました。\nFilePath={0}", m_commandLine.SettingFilePath ); MessageBox.Show( message, "LogTailer" ); Environment.Exit( 0 ); return; } // 各ウィンドウの作成 foreach( var tailer in root.Tailers ) { var logTailerWindow = _CreateLogTailerWindow( tailer, root.FontFamily, root.FontSize ); logTailerWindow.Show(); } }
/// <summary> /// 解析 /// </summary> /// <param name="commandLine"></param> /// <returns></returns> public static LogTailerCommandLine Analize( string commandLine ) { var args = commandLine.Split( ' ' ); // 現状ではコマンドライン引数は自分のパスと設定ファイルパスの2つしかない if( args.Length != 2 ) { return null; } // 絶対パスに変換 var path = args[ 1 ].Replace( "\"", "" ); var u1 = new Uri( Environment.CurrentDirectory + @"\" ); var u2 = new Uri( u1, path ); var filePah = u2.LocalPath; var result = new LogTailerCommandLine() { SettingFilePath = filePah, }; return result; }