コード例 #1
0
        public MainWindow()
        {
            InitializeComponent();

            Model            = new MainViewModel();
            this.DataContext = Model;

            // しばらくオプション増える予定ないし、コマンドラインの解析はさぼる。。。
            bool isLogging = false;

            foreach (string line in App.CommandLineArgs)
            {
                if (line.Equals("debug"))
                {
                    isLogging = true;
                }
            }

            Logger.init(Directory.GetParent(Assembly.GetEntryAssembly().Location) + @"\debug.log", isLogging);

            try
            {
                Receiver = new MainWindowReceiver(this);
                Manager  = new TwManager(Receiver);
            }
            catch (TwException ex)
            {
                Logger.Instance.PutMessage(ex.Message);
                MessageBox.Show(ex.Message, "起動できません", MessageBoxButton.OK);
                Application.Current.Shutdown();
            }

            // コントロールの初期値を設定
            chkBossAnnounce.IsEnabled = false;
            btnEnd.IsEnabled          = false;

            // コントロールの値を設定ファイルから読み込んだ内容に変更
            Settings                  = LoadSettings();
            txtBouyomiPath.Text       = Settings.BousyomiChanSettings.exeFilePath;
            chkBouyomi.IsChecked      = Settings.BousyomiChanSettings.IsEnabled;
            chkBossAnnounce.IsChecked = Settings.BousyomiChanSettings.IsBossAnnounceEnabled;

            DispatcherTimer timer = new DispatcherTimer();

            timer.Interval = TimeSpan.FromMilliseconds(1000);
            timer.Tick    += Timer_Tick;
            timer.Start();
        }
コード例 #2
0
        private static void SaveSettings(TwLogAnalyzerSettings settings)
        {
            // BaseDirectoryは\をつけたりつけなかったりするらしいので無条件でtrimして付け直す
            string fileName = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + '\\' + ConfigurationManager.AppSettings["setting.file"];

            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(TwLogAnalyzerSettings));

            try
            {
                using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
                {
                    serializer.WriteObject(stream, settings);
                }
            }
            catch (Exception ex)
            {
                Logger.Instance.PutMessage($"設定の書き込みに失敗: {ex.Message}");
                MessageBox.Show($"{fileName}に設定を保存できませんでした。", "設定の保存に失敗しました");
            }
        }