示例#1
0
文件: App.cs 项目: rol2728/Dev.D3
        protected override void OnStartup(StartupEventArgs e)
        {
            MainWindow = Shell.Instance;
            MainWindow.Show();
            ShutdownMode = ShutdownMode.OnMainWindowClose;

            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    using (var engine = CreateEngine())
                        using (var watcher = new WatcherThread(engine))
                        {
                            Shell.Instance.IsAttached = true;
                            Minimap minimap           = null;
                            OverlayWindow overlay     = null;
                            Execute.OnUIThread(() =>
                            {
                                Canvas canvas = new Canvas();
                                overlay       = OverlayWindow.Create(engine.Process, canvas);
                                overlay.Show();
                                minimap = new Minimap(canvas);
                            });
                            watcher.AddTask(minimap.Update);
                            watcher.Start();
                            engine.Process.WaitForExit();
                            Execute.OnUIThread(() => overlay.Close());
                        }
                    Shell.Instance.IsAttached = false;
                    //Execute.OnUIThread(() => MainWindow.Close());
                }
            }, TaskCreationOptions.LongRunning);
        }
示例#2
0
        public override void Dispose()
        {
            if (_isDisposed)
            {
                return;
            }

            if (IsEnabled)
            {
                Disable();
            }
            try
            {
                OverlayWindow?.Hide();
                OverlayWindow?.Close();
            }
            catch (Exception ex)
            {
                ex.Log("Ошибка в OverlayLayer.Dispose() на строке OverlayWindow.Hide() или Close()");
            }
            OverlayWindow = null;
            _tickEngine.Stop();
            Settings.Save();

            base.Dispose();
            _isDisposed = true;
        }
示例#3
0
        // Clear objects
        public override void Dispose()
        {
            if (_isDisposed)
            {
                return;
            }

            if (IsEnabled)
            {
                Disable();
            }

            Application.Current.Dispatcher.Invoke((Action) delegate
            {
                try
                {
                    OverlayWindow.Hide();
                    OverlayWindow.Close();
                    OverlayWindow = null;
                }
                catch (NullReferenceException e)
                {
                }
            });

            _tickEngine.Stop();

            base.Dispose();
            _isDisposed = true;
        }
示例#4
0
 /// <summary>
 /// Close the overlay window, if it has been created.
 /// </summary>
 public void Close()
 {
     if (mOverlayWindow != null)
     {
         mOverlayWindow.Invoke(() => mOverlayWindow.Close());
         mOverlayWindow = null;
     }
 }
示例#5
0
        public void Show()
        {
            var window = new OverlayWindow();

            window.SourceInitialized += (s, e) =>
            {
                window.Close();
            };

            window.Show();
        }
示例#6
0
        public bool Detach()
        {
            if (overlay != null)
            {
                overlay.Close();
                overlay.Dispose();
                overlay = null;
            }

            syncTimer.Stop();
            gameCheckTimer.Stop();
            selectedUnitTimer.Stop();

            if (Pickit != null)
            {
                Pickit.Stop();
                Pickit = null;
            }

            if (MapHandler != null)
            {
                MapHandler.Reset();
                MapHandler = null;
            }

            if (AutoTeleport != null)
            {
                AutoTeleport.Terminate();
                AutoTeleport = null;
            }

            PlayerInfo = null;

            if (Installed)
            {
                try
                {
                    pd.StopDebugging();
                    pd.Join();
                    pd = null;
                }
                catch
                {
                    return(false);
                }
            }

            return(true);
        }
示例#7
0
        // Clear objects
        public override void Dispose()
        {
            if (_isDisposed)
            {
                return;
            }

            if (IsEnabled)
            {
                Disable();
            }

            OverlayWindow.Hide();
            OverlayWindow.Close();
            OverlayWindow = null;

            _tickEngine.Stop();

            base.Dispose();
            _isDisposed = true;
        }
示例#8
0
        public void ClickThrough()
        {
            var window = new OverlayWindow();

            window.ClickThrough = true;
            window.ClickThrough = false;
            window.ClickThrough = true;
            window.ClickThrough = false;

            window.SourceInitialized += (s, e) =>
            {
                window.ClickThrough = true;
                window.ClickThrough = false;
                window.ClickThrough = true;
                window.ClickThrough = false;

                window.Close();
            };

            window.Show();
        }
示例#9
0
        public void AltF4Cancel()
        {
            var window = new OverlayWindow();

            window.AltF4Cancel = true;
            window.AltF4Cancel = false;
            window.AltF4Cancel = true;
            window.AltF4Cancel = false;

            window.SourceInitialized += (s, e) =>
            {
                window.AltF4Cancel = true;
                window.AltF4Cancel = false;
                window.AltF4Cancel = true;
                window.AltF4Cancel = false;

                window.Close();
            };

            window.Show();
        }
示例#10
0
 private void CloseOverlayWindow()
 {
     Debug.Assert(_overlayWindow != null);
     _overlayWindow.Close();
     _overlayWindow = null;
 }