public static void SaveXml(AoEDEAlarmSettings s)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(AoEDEAlarmSettings));

            using (StreamWriter sw = new StreamWriter(AoedeStaticGlobal.SettingFileName, false, Encoding.UTF8)) {
                serializer.Serialize(sw, s);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var assem = System.Reflection.Assembly.GetExecutingAssembly();
            var attr  = (System.Runtime.InteropServices.GuidAttribute)Attribute.GetCustomAttribute(assem, typeof(System.Runtime.InteropServices.GuidAttribute));
            var guid  = attr.Value;

            System.Threading.Mutex mutex;
            bool hasHandle = false;

            using (mutex = new System.Threading.Mutex(false, guid)) {
                try {
                    try {
                        // Mutexの所有権を要求
                        hasHandle = mutex.WaitOne(0, false);
                    } catch (System.Threading.AbandonedMutexException) {
                        // 別アプリがMutexオブジェクトを開放しないで終了した場合
                        hasHandle = true;

                        //throw;
                    }
                    if (hasHandle == false)
                    {
                        // Mutexの所有権が得られなかったため、起動済みと判断して終了
                        MessageBox.Show("既に起動されています。");
                        return;
                    }

                    //---------------------------------------------------------
                    // アプリケーション開始
                    //---------------------------------------------------------
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);

                    //AoedeGlobal _g = new AoedeGlobal();
                    AoedeStaticGlobal.Settings = AoEDEAlarmSettings.LoadXml();
                    StartHotkeys();
                    NotifyIcon ni = SetNotifyIcon();

                    System.Windows.Forms.Application.Run();

                    ni.Dispose();
                    AoEDEAlarmSettings.SaveXml(AoedeStaticGlobal.Settings);
                } catch (Exception ex) {
                    // アプリケーション例外処理
                    Console.WriteLine(ex.Message);

                    //throw;
                } finally {
                    if (hasHandle)
                    {
                        mutex.ReleaseMutex();
                    }
                    mutex.Close();
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            AoedeStaticGlobal.Settings.Hotkey_Run       = (int)KeysArr[0];
            AoedeStaticGlobal.Settings.Hotkey_Stop      = (int)KeysArr[1];
            AoedeStaticGlobal.Settings.Hotkey_Customise = (int)KeysArr[2];

            AoEDEAlarmSettings.SaveXml(AoedeStaticGlobal.Settings);

            MessageBox.Show(text: "位置を保存しました。"
                            , caption: "画像位置設定"
                            , buttons: MessageBoxButtons.OK
                            , icon: MessageBoxIcon.Information
                            , defaultButton: MessageBoxDefaultButton.Button1
                            , options: MessageBoxOptions.DefaultDesktopOnly
                            );

            this.Close();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            AoedeStaticGlobal.Settings.Wood.X      = _ps.Wood.X;
            AoedeStaticGlobal.Settings.Wood.Y      = _ps.Wood.Y;
            AoedeStaticGlobal.Settings.Wood.Width  = _ps.Wood.Width;
            AoedeStaticGlobal.Settings.Wood.Height = _ps.Wood.Height;

            AoedeStaticGlobal.Settings.Food.X      = _ps.Food.X;
            AoedeStaticGlobal.Settings.Food.Y      = _ps.Food.Y;
            AoedeStaticGlobal.Settings.Food.Width  = _ps.Food.Width;
            AoedeStaticGlobal.Settings.Food.Height = _ps.Food.Height;

            AoedeStaticGlobal.Settings.Gold.X      = _ps.Gold.X;
            AoedeStaticGlobal.Settings.Gold.Y      = _ps.Gold.Y;
            AoedeStaticGlobal.Settings.Gold.Width  = _ps.Gold.Width;
            AoedeStaticGlobal.Settings.Gold.Height = _ps.Gold.Height;

            AoedeStaticGlobal.Settings.Stone.X      = _ps.Stone.X;
            AoedeStaticGlobal.Settings.Stone.Y      = _ps.Stone.Y;
            AoedeStaticGlobal.Settings.Stone.Width  = _ps.Stone.Width;
            AoedeStaticGlobal.Settings.Stone.Height = _ps.Stone.Height;

            AoedeStaticGlobal.Settings.Population.X      = _ps.Population.X;
            AoedeStaticGlobal.Settings.Population.Y      = _ps.Population.Y;
            AoedeStaticGlobal.Settings.Population.Width  = _ps.Population.Width;
            AoedeStaticGlobal.Settings.Population.Height = _ps.Population.Height;

            AoEDEAlarmSettings.SaveXml(AoedeStaticGlobal.Settings);

            MessageBox.Show(text: "位置を保存しました。"
                            , caption: "画像位置設定"
                            , buttons: MessageBoxButtons.OK
                            , icon: MessageBoxIcon.Information
                            , defaultButton: MessageBoxDefaultButton.Button1
                            , options: MessageBoxOptions.DefaultDesktopOnly
                            );

            this.Close();
        }
        public static AoEDEAlarmSettings LoadXml()
        {
            XmlSerializer      serializer = new XmlSerializer(typeof(AoEDEAlarmSettings));
            AoEDEAlarmSettings i;

            try {
                using (Stream reader = new FileStream(AoedeStaticGlobal.SettingFileName, FileMode.Open)) {
                    i = (AoEDEAlarmSettings)serializer.Deserialize(reader);
                }
                return(i);
            } catch (Exception ex) {
                //if (ex is System.IO.FileNotFoundException) {
                //}
                AoEDEAlarmSettings ttt = new AoEDEAlarmSettings {
                    Hotkey_Run       = (int)(Keys.R | Keys.Control | Keys.Shift),
                    Hotkey_Stop      = (int)(Keys.S | Keys.Control | Keys.Shift),
                    Hotkey_Customise = (int)(Keys.C | Keys.Control | Keys.Shift),
                    Population       = new AoEDEAlarmSettings.Rectangle {
                        X = 0, Y = 0, Width = 0, Height = 0,
                    },
                    Food = new AoEDEAlarmSettings.Rectangle {
                        X = 0, Y = 0, Width = 0, Height = 0,
                    },
                    Wood = new AoEDEAlarmSettings.Rectangle {
                        X = 0, Y = 0, Width = 0, Height = 0,
                    },
                    Gold = new AoEDEAlarmSettings.Rectangle {
                        X = 0, Y = 0, Width = 0, Height = 0,
                    },
                    Stone = new AoEDEAlarmSettings.Rectangle {
                        X = 0, Y = 0, Width = 0, Height = 0,
                    },
                };
                return(ttt);
            }
        }