diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs
index 755d206d5..228ec7ba2 100644
--- a/Flow.Launcher/App.xaml.cs
+++ b/Flow.Launcher/App.xaml.cs
@@ -106,9 +106,21 @@ namespace Flow.Launcher
private void AutoStartup()
{
+ // we try to enable auto-startup on first launch, or reenable if it was removed
+ // but the user still has the setting set
if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled)
{
- Helper.AutoStartup.Enable();
+ try
+ {
+ Helper.AutoStartup.Enable();
+ }
+ catch (Exception e)
+ {
+ // but if it fails (permissions, etc) then don't keep retrying
+ // this also gives the user a visual indication in the Settings widget
+ _settings.StartFlowLauncherOnSystemStartup = false;
+ Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message);
+ }
}
}
diff --git a/Flow.Launcher/Helper/AutoStartup.cs b/Flow.Launcher/Helper/AutoStartup.cs
index 816adfaac..956324020 100644
--- a/Flow.Launcher/Helper/AutoStartup.cs
+++ b/Flow.Launcher/Helper/AutoStartup.cs
@@ -25,7 +25,7 @@ namespace Flow.Launcher.Helper
}
catch (Exception e)
{
- Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}");
+ Log.Error("AutoStartup", $"Ignoring non-critical registry error (querying if enabled): {e}");
}
return false;
@@ -41,7 +41,8 @@ namespace Flow.Launcher.Helper
}
catch (Exception e)
{
- Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}");
+ Log.Error("AutoStartup", $"Failed to disable auto-startup: {e}");
+ throw;
}
}
@@ -54,9 +55,9 @@ namespace Flow.Launcher.Helper
}
catch (Exception e)
{
- Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}");
+ Log.Error("AutoStartup", $"Failed to enable auto-startup: {e}");
+ throw;
}
-
}
}
}
diff --git a/Flow.Launcher/Languages/da.xaml b/Flow.Launcher/Languages/da.xaml
index a67894e97..988e63bea 100644
--- a/Flow.Launcher/Languages/da.xaml
+++ b/Flow.Launcher/Languages/da.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Start Flow Launcher ved system start
+ Error enabling launch on startup
+ Error disabling launch on startup
Skjul Flow Launcher ved mistet fokus
Vis ikke notifikationer om nye versioner
Husk seneste position
diff --git a/Flow.Launcher/Languages/de.xaml b/Flow.Launcher/Languages/de.xaml
index e83c5bf6c..5b78f3a85 100644
--- a/Flow.Launcher/Languages/de.xaml
+++ b/Flow.Launcher/Languages/de.xaml
@@ -28,6 +28,8 @@
Portabler Modus
Speichern Sie alle Einstellungen und Benutzerdaten in einem Ordner (nützlich bei Verwendung mit Wechseldatenträgern oder Clouddiensten).
Starte Flow Launcher bei Systemstart
+ Error enabling launch on startup
+ Error disabling launch on startup
Verstecke Flow Launcher wenn der Fokus verloren geht
Zeige keine Nachricht wenn eine neue Version vorhanden ist
Merke letzte Ausführungsposition
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 6ec3bb4ef..544f9e41c 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -30,6 +30,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Start Flow Launcher on system startup
+ Error enabling launch on startup
+ Error disabling launch on startup
Hide Flow Launcher when focus is lost
Do not show new version notifications
Remember last launch location
diff --git a/Flow.Launcher/Languages/es-419.xaml b/Flow.Launcher/Languages/es-419.xaml
index 302b932a0..b76650027 100644
--- a/Flow.Launcher/Languages/es-419.xaml
+++ b/Flow.Launcher/Languages/es-419.xaml
@@ -28,6 +28,8 @@
Modo portable
Almacena todos los ajustes y datos de usuario en una sola carpeta (útil cuando se utiliza con unidades extraíbles o servicios en la nube).
Iniciar Flow Launcher al arrancar el sistema
+ Error enabling launch on startup
+ Error disabling launch on startup
Ocultar Flow Launcher cuando se pierde el enfoque
No mostrar notificaciones de nuevas versiones
Recordar última ubicación de inicio
diff --git a/Flow.Launcher/Languages/es.xaml b/Flow.Launcher/Languages/es.xaml
index a2ff40eee..4a8767a01 100644
--- a/Flow.Launcher/Languages/es.xaml
+++ b/Flow.Launcher/Languages/es.xaml
@@ -28,6 +28,8 @@
Modo Portable
Guarda toda la configuración y datos de usuario en una carpeta (Útil cuando se utiliza con unidades extraíbles o servicios en la nube).
Cargar Flow Launcher al iniciar el sistema
+ Error enabling launch on startup
+ Error disabling launch on startup
Ocultar Flow Launcher cuando se pierda el foco
No mostrar notificaciones de nuevas versiones
Recordar última posición de Flow Launcher
diff --git a/Flow.Launcher/Languages/fr.xaml b/Flow.Launcher/Languages/fr.xaml
index 1fc24ee11..a5708522f 100644
--- a/Flow.Launcher/Languages/fr.xaml
+++ b/Flow.Launcher/Languages/fr.xaml
@@ -28,6 +28,8 @@
Mode Portable
Stocker tous les paramètres et données utilisateur dans un seul dossier (Pratique en cas d'utilisation de disques amovibles ou de services cloud).
Lancer Flow Launcher au démarrage du système
+ Error enabling launch on startup
+ Error disabling launch on startup
Cacher Flow Launcher lors de la perte de focus
Ne pas afficher les notifications lors d'une nouvelle version
Se souvenir du dernier emplacement de la fenêtre
diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml
index 42ad82b7d..11f0c7f5c 100644
--- a/Flow.Launcher/Languages/it.xaml
+++ b/Flow.Launcher/Languages/it.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Avvia Wow all'avvio di Windows
+ Error enabling launch on startup
+ Error disabling launch on startup
Nascondi Flow Launcher quando perde il focus
Non mostrare le notifiche per una nuova versione
Ricorda l'ultima posizione di avvio del launcher
diff --git a/Flow.Launcher/Languages/ja.xaml b/Flow.Launcher/Languages/ja.xaml
index b4e687035..5b542a0a3 100644
--- a/Flow.Launcher/Languages/ja.xaml
+++ b/Flow.Launcher/Languages/ja.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
スタートアップ時にFlow Launcherを起動する
+ Error enabling launch on startup
+ Error disabling launch on startup
フォーカスを失った時にFlow Launcherを隠す
最新版が入手可能であっても、アップグレードメッセージを表示しない
前回のランチャーの位置を記憶
diff --git a/Flow.Launcher/Languages/ko.xaml b/Flow.Launcher/Languages/ko.xaml
index 094985b3a..aae4322a3 100644
--- a/Flow.Launcher/Languages/ko.xaml
+++ b/Flow.Launcher/Languages/ko.xaml
@@ -28,6 +28,8 @@
포터블 모드
모든 설정이 폴더안에 들어갑니다. USB 드라이브나 클라우드로 사용 가능합니다.
시스템 시작 시 Flow Launcher 실행
+ Error enabling launch on startup
+ Error disabling launch on startup
포커스 잃으면 Flow Launcher 숨김
새 버전 알림 끄기
마지막 실행 위치 기억
diff --git a/Flow.Launcher/Languages/nb-NO.xaml b/Flow.Launcher/Languages/nb-NO.xaml
index 859ec20a0..525591998 100644
--- a/Flow.Launcher/Languages/nb-NO.xaml
+++ b/Flow.Launcher/Languages/nb-NO.xaml
@@ -18,6 +18,8 @@
Flow Launcher-innstillinger
Generelt
Start Flow Launcher ved systemstart
+ Error enabling launch on startup
+ Error disabling launch on startup
Skjul Flow Launcher ved mistet fokus
Ikke vis varsel om ny versjon
Husk siste plassering
diff --git a/Flow.Launcher/Languages/nb.xaml b/Flow.Launcher/Languages/nb.xaml
index d85ab98da..48180910f 100644
--- a/Flow.Launcher/Languages/nb.xaml
+++ b/Flow.Launcher/Languages/nb.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Start Flow Launcher on system startup
+ Error enabling launch on startup
+ Error disabling launch on startup
Hide Flow Launcher when focus is lost
Do not show new version notifications
Remember last launch location
diff --git a/Flow.Launcher/Languages/nl.xaml b/Flow.Launcher/Languages/nl.xaml
index 715e934d5..d56e26149 100644
--- a/Flow.Launcher/Languages/nl.xaml
+++ b/Flow.Launcher/Languages/nl.xaml
@@ -28,6 +28,8 @@
Draagbare Modus
Alle instellingen en gebruikersgegevens opslaan in één map (Nuttig bij het gebruik van verwijderbare schijven of cloud services).
Start Flow Launcher als systeem opstart
+ Error enabling launch on startup
+ Error disabling launch on startup
Verberg Flow Launcher als focus verloren is
Laat geen nieuwe versie notificaties zien
Herinner laatste opstart locatie
diff --git a/Flow.Launcher/Languages/pl.xaml b/Flow.Launcher/Languages/pl.xaml
index 8868af59d..1993e101b 100644
--- a/Flow.Launcher/Languages/pl.xaml
+++ b/Flow.Launcher/Languages/pl.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Uruchamiaj Flow Launcher przy starcie systemu
+ Error enabling launch on startup
+ Error disabling launch on startup
Ukryj okno Flow Launcher kiedy przestanie ono być aktywne
Nie pokazuj powiadomienia o nowej wersji
Zapamiętaj ostatnią pozycję okna
diff --git a/Flow.Launcher/Languages/pt-br.xaml b/Flow.Launcher/Languages/pt-br.xaml
index ff69d2965..34759ddb4 100644
--- a/Flow.Launcher/Languages/pt-br.xaml
+++ b/Flow.Launcher/Languages/pt-br.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Iniciar Flow Launcher com inicialização do sistema
+ Error enabling launch on startup
+ Error disabling launch on startup
Esconder Flow Launcher quando foco for perdido
Não mostrar notificações de novas versões
Lembrar última localização de lançamento
diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml
index 1e2847a55..8542b4050 100644
--- a/Flow.Launcher/Languages/pt-pt.xaml
+++ b/Flow.Launcher/Languages/pt-pt.xaml
@@ -28,6 +28,8 @@
Modo portátil
Guardar todas as definições e dados do utilizador numa pasta (indicado se utilizar discos amovíveis ou serviços cloud)
Iniciar Flow Launcher ao arrancar o sistema
+ Error enabling launch on startup
+ Error disabling launch on startup
Ocultar Flow Launcher ao perder o foco
Não notificar acerca de novas versões
Memorizar localização anterior
diff --git a/Flow.Launcher/Languages/ru.xaml b/Flow.Launcher/Languages/ru.xaml
index 55fa3b02d..4adc04edb 100644
--- a/Flow.Launcher/Languages/ru.xaml
+++ b/Flow.Launcher/Languages/ru.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Запускать Flow Launcher при запуске системы
+ Error enabling launch on startup
+ Error disabling launch on startup
Скрывать Flow Launcher, если потерян фокуc
Не отображать сообщение об обновлении, когда доступна новая версия
Запомнить последнее место запуска
diff --git a/Flow.Launcher/Languages/sk.xaml b/Flow.Launcher/Languages/sk.xaml
index 1ce0f3f45..aadd51bd9 100644
--- a/Flow.Launcher/Languages/sk.xaml
+++ b/Flow.Launcher/Languages/sk.xaml
@@ -28,6 +28,8 @@
Prenosný režim
Uloží všetky nastavenia a používateľské údaje do jedného priečinka (Užitočné pri vymeniteľných diskoch a cloudových službách).
Spustiť Flow Launcher pri spustení systému
+ Error enabling launch on startup
+ Error disabling launch on startup
Schovať Flow Launcher po strate fokusu
Nezobrazovať upozornenia na novú verziu
Zapamätať si posledné umiestnenie
diff --git a/Flow.Launcher/Languages/sr.xaml b/Flow.Launcher/Languages/sr.xaml
index 0515e3e67..73234d825 100644
--- a/Flow.Launcher/Languages/sr.xaml
+++ b/Flow.Launcher/Languages/sr.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
Pokreni Flow Launcher pri podizanju sistema
+ Error enabling launch on startup
+ Error disabling launch on startup
Sakri Flow Launcher kada se izgubi fokus
Ne prikazuj obaveštenje o novoj verziji
Zapamti lokaciju poslednjeg pokretanja
diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml
index 3318cdc14..613d1ccf8 100644
--- a/Flow.Launcher/Languages/tr.xaml
+++ b/Flow.Launcher/Languages/tr.xaml
@@ -28,6 +28,8 @@
Taşınabilir Mod
Tüm ayarları ve kullanıcı verilerini tek bir klasörde saklayın (Çıkarılabilir sürücüler veya bulut hizmetleri ile kullanıldığında kullanışlıdır).
Flow Launcher'u başlangıçta başlat
+ Error enabling launch on startup
+ Error disabling launch on startup
Odak pencereden ayrıldığında Flow Launcher'u gizle
Güncelleme bildirimlerini gösterme
Pencere konumunu hatırla
diff --git a/Flow.Launcher/Languages/uk-UA.xaml b/Flow.Launcher/Languages/uk-UA.xaml
index b7e9525ab..6fd01d2ba 100644
--- a/Flow.Launcher/Languages/uk-UA.xaml
+++ b/Flow.Launcher/Languages/uk-UA.xaml
@@ -28,6 +28,8 @@
Портативний режим
Зберігати всі налаштування і дані користувача в одній теці (буде корисно при видаленні дисків або хмарних сервісах).
Запускати Flow Launcher при запуску системи
+ Error enabling launch on startup
+ Error disabling launch on startup
Сховати Flow Launcher, якщо втрачено фокус
Не повідомляти про доступні нові версії
Запам'ятати останнє місце запуску
diff --git a/Flow.Launcher/Languages/zh-cn.xaml b/Flow.Launcher/Languages/zh-cn.xaml
index 5dee1cc75..61adffdf8 100644
--- a/Flow.Launcher/Languages/zh-cn.xaml
+++ b/Flow.Launcher/Languages/zh-cn.xaml
@@ -28,6 +28,8 @@
便携模式
将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。
开机自启
+ Error enabling launch on startup
+ Error disabling launch on startup
失去焦点时自动隐藏 Flow Launcher
不显示新版本提示
记住上次启动位置
diff --git a/Flow.Launcher/Languages/zh-tw.xaml b/Flow.Launcher/Languages/zh-tw.xaml
index 27a51e23e..e7d65fa52 100644
--- a/Flow.Launcher/Languages/zh-tw.xaml
+++ b/Flow.Launcher/Languages/zh-tw.xaml
@@ -28,6 +28,8 @@
Portable Mode
Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
開機時啟動
+ Error enabling launch on startup
+ Error disabling launch on startup
失去焦點時自動隱藏 Flow Launcher
不顯示新版本提示
記住上次啟動位置
diff --git a/Flow.Launcher/Notification.cs b/Flow.Launcher/Notification.cs
index 3f5565eeb..57c1e88f2 100644
--- a/Flow.Launcher/Notification.cs
+++ b/Flow.Launcher/Notification.cs
@@ -18,7 +18,7 @@ namespace Flow.Launcher
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "")]
- public static void Show(string title, string subTitle, string iconPath)
+ public static void Show(string title, string subTitle, string iconPath = null)
{
// Handle notification for win7/8/early win10
if (legacy)
@@ -45,4 +45,4 @@ namespace Flow.Launcher
msg.Show(title, subTitle, iconPath);
}
}
-}
\ No newline at end of file
+}
diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs
index 81f7a2389..e698ae597 100644
--- a/Flow.Launcher/PublicAPIInstance.cs
+++ b/Flow.Launcher/PublicAPIInstance.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
@@ -286,4 +286,4 @@ namespace Flow.Launcher
#endregion
}
-}
\ No newline at end of file
+}
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index fbcea504e..ab0e67519 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
@@ -306,8 +306,8 @@ namespace Flow.Launcher.ViewModel
{
Notification.Show(
InternationalizationManager.Instance.GetTranslation("success"),
- InternationalizationManager.Instance.GetTranslation("completedSuccessfully"),
- "");
+ InternationalizationManager.Instance.GetTranslation("completedSuccessfully")
+ );
}))
.ConfigureAwait(false);
});
@@ -927,4 +927,4 @@ namespace Flow.Launcher.ViewModel
#endregion
}
-}
\ No newline at end of file
+}
diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
index faa41c0f6..587349045 100644
--- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
+++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
@@ -220,12 +220,29 @@ namespace Flow.Launcher.ViewModel
public void SetStartup()
{
- AutoStartup.Enable();
+ try
+ {
+ AutoStartup.Enable();
+ }
+ catch (Exception e)
+ {
+ Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message);
+ }
}
public void RemoveStartup()
{
- AutoStartup.Disable();
+ if (AutoStartup.IsEnabled)
+ {
+ try
+ {
+ AutoStartup.Disable();
+ }
+ catch (Exception e)
+ {
+ Notification.Show(InternationalizationManager.Instance.GetTranslation("deregisterAutoStartFailed"), e.Message);
+ }
+ }
}
#endregion