public void HookRun(HookPoint hp) { switch (hp) { // アップデート後 case HookPoint.UpdatedGame: createFileOfScreenSize(); ConfigExtra.updateUcf(); break; // アプリケーション開始時 case HookPoint.Startup: // ゲーム開始時 case HookPoint.RunGame: break; // アプリケーション終了時 case HookPoint.Shutdown: break; // その他 default: break; } return; }
private void button_OK_Click(object sender, EventArgs e) { this.useFullScreen = this.checkBox_FullScreen.Checked; this.useSound = !this.checkBox_FullSoundOFF.Checked; this.useMapEffect = this.checkBox_MapEffect.Checked; this.use3DEffect = this.checkBox_SpecailEffect.Checked; ComboBoxDisplay combDisplay = (ComboBoxDisplay)this.comboBox_Resolution.SelectedItem; Structures.Display.DisplayCollector dispCol = new Structures.Display.DisplayCollector(); //Structures.Display.Display display = dispCol.getDisplay(combDisplay.Gauge); Structures.Display.Display display = new TricksterTools.Plugins.ConfigExtra.Structures.Display.Display(combDisplay.Width, combDisplay.Height); if (display.Width > 0 && display.Height > 0) { this.ScreenWidth = display.Width; this.ScreenHeight = display.Height; } this.SoundBit = Convert.ToInt16(this.comboBox_Bits.SelectedItem.ToString().Replace(" Bit", "")); this.SoundChannel = Convert.ToInt16(this.comboBox_Channel.SelectedItem.ToString().Replace(" Channel", "")); this.SoundFreq = Convert.ToInt32(this.comboBox_SampleRate.SelectedItem.ToString()); this.CaptureScreenFormat = (this.comboBox_FileFormat.SelectedItem.ToString() == "JPG") ? Structures.Images.ImageFormat.JPG : Structures.Images.ImageFormat.BMP; this.CaptureScreenJPGQuality = this.trackBar_JPGOption.Value; string rKeyName; // 操作するレジストリ・キーの名前 rKeyName = @"SOFTWARE\NTreev\Trickster_GCrest\Setup"; // レジストリの取得 try { // レジストリ・キーのパスを指定してレジストリを開く RegistryKey rKey = Registry.CurrentUser.CreateSubKey(rKeyName); // レジストリの値を取得 rKey.SetValue("Full Screen", ((this.useFullScreen) ? 1 : 0), RegistryValueKind.DWord); rKey.SetValue("heightPixel", this.ScreenHeight, RegistryValueKind.DWord); rKey.SetValue("widthPixel", this.ScreenWidth, RegistryValueKind.DWord); rKey.SetValue("UseSound", ((this.useSound) ? 1 : 0), RegistryValueKind.DWord); rKey.SetValue("SoundBit", this.SoundBit, RegistryValueKind.DWord); rKey.SetValue("SoundFrequency", this.SoundFreq, RegistryValueKind.DWord); int ch = 8; switch (this.SoundChannel) { case 8: ch = 4; break; case 16: ch = 8; break; case 32: ch = 16; break; case 48: ch = 32; break; } int ch3d = (ch > 16) ? 16 : ch; rKey.SetValue("2DSample", ch, RegistryValueKind.DWord); rKey.SetValue("3DSample", ch3d, RegistryValueKind.DWord); rKey.SetValue("Use3DEffect", ((this.use3DEffect) ? 1 : 0), RegistryValueKind.DWord); rKey.SetValue("UseMapEffect", ((this.useMapEffect) ? 1 : 0), RegistryValueKind.DWord); rKey.SetValue("CaptureScreenFormat", this.CaptureScreenFormat.ToString(), RegistryValueKind.String); rKey.SetValue("CaptureScreenJPGQuality", this.CaptureScreenJPGQuality, RegistryValueKind.DWord); // 開いたレジストリ・キーを閉じる rKey.Close(); // 画面サイズに依存するファイルを生成 if (!this.createFileOfScreenSize()) { MessageBox.Show("必要なファイルのコピーが行えませんでした。", "Trickster Config", MessageBoxButtons.OK, MessageBoxIcon.Warning); } ConfigExtra.updateUcf(); } catch (Exception ex) { SimpleLogger.WriteLine(ex.Message); MessageBox.Show("設定の変更に失敗しました。", "Trickster Config", MessageBoxButtons.OK, MessageBoxIcon.Error); throw ex; } this.Close(); }