fix: Fixed Windows Desktop Notifications. Windows Only Allows Notifications From Registered Applications. Added a Function in the Standalone Binary To Register It in the Registry As if It Were Installed.
This commit is contained in:
+45
-3
@@ -3,11 +3,52 @@ mod models;
|
||||
mod net;
|
||||
mod scanner;
|
||||
|
||||
use tauri::Manager;
|
||||
use tauri::menu::{Menu, MenuItem};
|
||||
use tauri::tray::TrayIconBuilder;
|
||||
use tauri::Manager;
|
||||
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
#[cfg(target_os = "windows")]
|
||||
fn register_aumid() {
|
||||
let app_id = "io.argus.app";
|
||||
let key_path = format!("HKCU\\Software\\Classes\\AppUserModelId\\{}", app_id);
|
||||
|
||||
// Check if already registered
|
||||
let check = std::process::Command::new("reg")
|
||||
.args(["query", &key_path])
|
||||
.output();
|
||||
|
||||
if let Ok(o) = check {
|
||||
if o.status.success() {
|
||||
tracing::debug!("AUMID already registered");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Not registered, create it
|
||||
let output = std::process::Command::new("reg")
|
||||
.args([
|
||||
"add",
|
||||
&key_path,
|
||||
"/v", "DisplayName",
|
||||
"/t", "REG_SZ",
|
||||
"/d", "Argus",
|
||||
"/f",
|
||||
])
|
||||
.output();
|
||||
|
||||
match output {
|
||||
Ok(o) if o.status.success() => {
|
||||
tracing::debug!("AUMID registered successfully");
|
||||
}
|
||||
Ok(o) => {
|
||||
tracing::warn!("AUMID registration failed: {}", String::from_utf8_lossy(&o.stderr));
|
||||
}
|
||||
Err(e) => {
|
||||
tracing::warn!("Failed to run reg command: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn run() {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(
|
||||
@@ -30,7 +71,8 @@ pub fn run() {
|
||||
let show = MenuItem::with_id(app, "show", "Show Argus", true, None::<&str>)?;
|
||||
let quit = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?;
|
||||
let menu = Menu::with_items(app, &[&show, &quit])?;
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
register_aumid();
|
||||
let _tray = TrayIconBuilder::new()
|
||||
.icon(app.default_window_icon().unwrap().clone())
|
||||
.tooltip("Argus - Network Scanner")
|
||||
@@ -97,4 +139,4 @@ pub fn run() {
|
||||
])
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user