private void InvokeRoutine(Keys key, bool isKeyDown) { Debug.WriteLine($"InvokeRoutine: key={key},down={isKeyDown}"); if (isKeyDown) { switch (key) { case Keys.Enter: PipeServerManager.SendMessage(PipeMessages.RunAndClose); break; } } else { switch (key) { case Keys.Up: case Keys.Down: case Keys.Left: case Keys.Right: PipeServerManager.SendMessage(PipeMessages.Switch); break; case Keys.Space: PipeServerManager.SendMessage(PipeMessages.Toggle); break; case Keys.Escape: PipeServerManager.SendMessage(PipeMessages.Close); break; } } }
public void Start() { if (IsRunning) { return; } IsRunning = true; new Task(() => { var last = string.Empty; while (IsRunning) { Thread.Sleep(500); if (NativeMethods.QuickLook.GetFocusedWindowType() == NativeMethods.QuickLook.FocusedWindowType.Invalid) { continue; } var path = NativeMethods.QuickLook.GetCurrentSelection(); if (IsRunning && last != path) { last = path; PipeServerManager.SendMessage(PipeMessages.Switch, path); } } }).Start(); }
private bool EnsureFirstInstance(string[] args) { _isRunning = new Mutex(true, "QuickLook.App.Mutex", out bool isFirst); if (isFirst) { return(true); } // second instance: preview this file if (args.Any() && (Directory.Exists(args.First()) || File.Exists(args.First()))) { PipeServerManager.SendMessage(PipeMessages.Toggle, args.First()); } //add by gh else if (args.Contains("/setvisible")) { SettingHelper.Set("Visible", true); MessageBox.Show(TranslationHelper.Get("APP_SECOND_TEXT_HIDE"), TranslationHelper.Get("APP_SECOND"), MessageBoxButton.OK, MessageBoxImage.Information); } //---------// // second instance: duplicate else { MessageBox.Show(TranslationHelper.Get("APP_SECOND_TEXT"), TranslationHelper.Get("APP_SECOND"), MessageBoxButton.OK, MessageBoxImage.Information); } return(false); }
private void InvokeRoutine(Keys key, bool isKeyDown) { if (!_validKeys.Contains(key)) { Debug.WriteLine($"Invalid keypress: key={key},down={isKeyDown}, time={_lastInvalidKeyPressTick}"); _lastInvalidKeyPressTick = DateTime.Now.Ticks; return; } if (DateTime.Now.Ticks - _lastInvalidKeyPressTick < VALID_KEY_PRESS_DELAY) { return; } _lastInvalidKeyPressTick = 0L; Debug.WriteLine($"InvokeRoutine: key={key},down={isKeyDown}"); if (isKeyDown) { switch (key) { case Keys.Enter: PipeServerManager.SendMessage(PipeMessages.RunAndClose); break; } } else { switch (key) { case Keys.Up: case Keys.Down: case Keys.Left: case Keys.Right: PipeServerManager.SendMessage(PipeMessages.Switch); break; case Keys.Space: PipeServerManager.SendMessage(PipeMessages.Toggle); break; case Keys.Escape: PipeServerManager.SendMessage(PipeMessages.Close); break; } } }
private void Application_Startup(object sender, StartupEventArgs e) { if (!EnsureOSVersion() || !EnsureFirstInstance(e.Args) || !EnsureFolderWritable(SettingHelper.LocalDataPath)) { _cleanExit = false; Shutdown(); return; } CheckUpdate(); RunListener(e); // first instance: run and preview this file if (e.Args.Any() && (Directory.Exists(e.Args.First()) || File.Exists(e.Args.First()))) { PipeServerManager.SendMessage(PipeMessages.Toggle, e.Args.First()); } }
private void InvokeRoutine(Keys key, bool isKeyDown) { var path = NativeMethods.QuickLook.GetCurrentSelection(); Debug.WriteLine($"InvokeRoutine: key={key},down={isKeyDown}"); if (isKeyDown) { switch (key) { case Keys.Enter: PipeServerManager.SendMessage(PipeMessages.RunAndClose); break; } } else { switch (key) { case Keys.Up: case Keys.Down: case Keys.Left: case Keys.Right: PipeServerManager.SendMessage(PipeMessages.Switch, path); break; case Keys.Space: PipeServerManager.SendMessage(PipeMessages.Toggle, path); break; case Keys.Escape: PipeServerManager.SendMessage(PipeMessages.Close); break; } } }
private void RemoteCallShowPreview(StartupEventArgs e) { PipeServerManager.SendMessage(PipeMessages.Toggle, e.Args.First()); }