launch webpage commander notification page from current browser window

This commit is contained in:
Kang Yu 2024-08-17 13:30:20 -07:00
parent 0a6c00c3a7
commit 4cece1ab9c
4 changed files with 26 additions and 9 deletions

View file

@ -276,7 +276,7 @@ namespace PersistentWindows.Common
StartAliveTimer(1);
}
bool IsBrowserWindow(IntPtr hwnd)
private bool IsBrowserWindow(IntPtr hwnd)
{
return PersistentWindowProcessor.IsBrowserWindow(hwnd);
}
@ -1109,7 +1109,7 @@ namespace PersistentWindows.Common
User32.SetForegroundWindow(Handle);
}
private static IntPtr GetForegroundWindow(bool strict = false)
public static IntPtr GetForegroundWindow(bool strict = false)
{
return PersistentWindowProcessor.GetForegroundWindow(strict);
}

View file

@ -4177,7 +4177,7 @@ namespace PersistentWindows.Common
}
private string GetProcExePath(uint proc_id)
public static string GetProcExePath(uint proc_id)
{
IntPtr hProcess = Kernel32.OpenProcess(Kernel32.ProcessAccessFlags.QueryInformation, false, proc_id);
string pathToExe = string.Empty;

View file

@ -63,8 +63,9 @@ namespace PersistentWindows.SystrayShell
User32.KeyModifier modifier = (User32.KeyModifier)((int)m.LParam & 0xFFFF); // The modifier of the hotkey that was pressed.
int id = m.WParam.ToInt32(); // The id of the hotkey that was pressed.
IntPtr fgWnd = PersistentWindowProcessor.GetForegroundWindow(strict : true);
hkwin.HotKeyPressed(from_menu : false);
if (HotKeyWindow.invokedFromBrowser)
if (PersistentWindowProcessor.IsBrowserWindow(fgWnd))
{
Program.HideRestoreTip(false); //hide icon
Program.HideRestoreTip(); //show icon
@ -73,12 +74,28 @@ namespace PersistentWindows.SystrayShell
{
init = false;
string webpage_commander_notification = Path.Combine(Program.AppdataFolder, "webpage_commander_notification");
if (!File.Exists(webpage_commander_notification))
if (File.Exists(webpage_commander_notification))
{
File.Create(webpage_commander_notification);
Process.Start(Program.ProjectUrl + "/blob/master/webpage_commander.md");
Program.systrayForm.notifyIconMain.ShowBalloonTip(8000, "webpage commander is invoked via hotkey", "Press the hotkey (Alt + W) again to revoke", ToolTipIcon.Info);
}
else
{
try
{
File.Create(webpage_commander_notification);
uint processId;
User32.GetWindowThreadProcessId(fgWnd, out processId);
string procPath = PersistentWindowProcessor.GetProcExePath(processId);
Process.Start(procPath, Program.ProjectUrl + "/blob/master/webpage_commander.md");
}
catch (Exception ex)
{
Log.Error(ex.ToString());
Program.systrayForm.notifyIconMain.ShowBalloonTip(8000, "webpage commander is invoked via hotkey", "Press the hotkey (Alt + W) again to revoke", ToolTipIcon.Info);
Process.Start(Program.ProjectUrl + "/blob/master/webpage_commander.md");
}
}
Program.systrayForm.notifyIconMain.ShowBalloonTip(8000, "webpage commander is invoked via hotkey", "Press the hotkey (Alt + W) again to revoke", ToolTipIcon.Info);
}
}

View file

@ -29,7 +29,7 @@ namespace PersistentWindows.SystrayShell
private const int MaxSnapshots = 38; // 0-9, a-z, ` and final one for undo
static PersistentWindowProcessor pwp = null;
public static PersistentWindowProcessor pwp = null;
public static SystrayForm systrayForm = null;
static bool silent = false; //suppress all balloon tip & sound prompt
static bool notification = false; //pop balloon when auto restore