BUG-1872: Hack for displaying the OneDrive is blocking the hotkey registration.

This commit is contained in:
Robin 2016-09-16 22:57:36 +02:00
parent 07f5463a38
commit f07ed83722
14 changed files with 39 additions and 14 deletions

View file

@ -25,6 +25,7 @@ using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
@ -610,6 +611,28 @@ namespace Greenshot {
return success || ignoreFailedRegistration;
}
/// <summary>
/// Check if OneDrive is blocking hotkeys
/// </summary>
/// <returns>true if onedrive has hotkeys turned on</returns>
private static bool IsOneDriveBlockingHotkey()
{
if (!Environment.OSVersion.IsWindows10())
{
return false;
}
var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
var oneDriveSettingsPath = Path.Combine(localAppData, @"Microsoft\OneDrive\settings\Personal");
var oneDriveSettingsFile = Directory.GetFiles(oneDriveSettingsPath, "*_screenshot.dat").FirstOrDefault();
if (!File.Exists(oneDriveSettingsFile))
{
return false;
}
var screenshotSetting = File.ReadAllLines(oneDriveSettingsFile).Skip(1).Take(1).First();
return "2".Equals(screenshotSetting);
}
/// <summary>
/// Displays a dialog for the user to choose how to handle hotkey registration failures:
/// retry (allowing to shut down the conflicting application before),
@ -620,7 +643,9 @@ namespace Greenshot {
/// <returns></returns>
private static bool HandleFailedHotkeyRegistration(string failedKeys) {
bool success = false;
DialogResult dr = MessageBox.Show(Instance, Language.GetFormattedString(LangKey.warning_hotkeys, failedKeys), Language.GetString(LangKey.warning), MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation);
var warningTitle = Language.GetString(LangKey.warning);
var message = string.Format(Language.GetString(LangKey.warning_hotkeys), failedKeys, IsOneDriveBlockingHotkey() ? " (OneDrive)": "");
DialogResult dr = MessageBox.Show(Instance, message, warningTitle, MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation);
if (dr == DialogResult.Retry) {
LOG.DebugFormat("Re-trying to register hotkeys");
HotkeyControl.UnregisterHotkeys();

View file

@ -273,7 +273,7 @@ Například: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss} vytvoří ve výchozím úlo
<resource name="update_found">K dispozici je novější verze Greenshot! Přejete si stáhnout Greenshot {0}?</resource>
<resource name="wait_ie_capture">Počkejte prosím než bude zachycena stránka v aplikaci Internet Explorer...</resource>
<resource name="warning">Upozornění</resource>
<resource name="warning_hotkeys">Klávesovou(é) zkratku(y) "{0}" nelze použít. Tento problém je pravděpodobně způsoben jiným programem používajícím tytéž klávesové zkratky! Můžete změnit nastavení klávesových zkratek, deaktivovat je nebo změnit nastavení softwaru využívajícího shodné klávesové zkratky.
<resource name="warning_hotkeys">Klávesovou(é) zkratku(y) "{0}" nelze použít. Tento problém je pravděpodobně způsoben jiným programem{1} používajícím tytéž klávesové zkratky! Můžete změnit nastavení klávesových zkratek, deaktivovat je nebo změnit nastavení softwaru využívajícího shodné klávesové zkratky.
Všechny funkce Greenshotu jsou stále dostupné přímo z místní nabídky bez použití klávesové zkratky.</resource>
<resource name="WindowCaptureMode.Aero">Použít vlastní barvu</resource>

View file

@ -278,7 +278,7 @@ Verwendung durch Greenshot reserviert werden, bis das Programm geschlossen wird.
<resource name="wait_ie_capture">Bitte warten Sie, während die Seite im Internet Explorer abfotografiert wird...</resource>
<resource name="warning">Hinweis</resource>
<resource name="warning_hotkeys">Die globale Tastenkombination "{0}" konnte nicht aktiviert werden.
Vermutlich wurde dieselbe Tastenkombination bereits von einem anderen Programm reserviert.
Vermutlich wurde dieselbe Tastenkombination bereits von einem anderen Programm{1} reserviert.
Sie können die Tastenkombinationen für Greenshot ändern, oder das Programm, das die Tastenkombination verwendet, deaktivieren.
Sie können aber auch alle Greenshot-Funktionen über das Kontextmenü des Greenshot-Icons im Infobereich verwenden.</resource>

View file

@ -275,7 +275,7 @@ time, e.g. 11_58_32 (plus extension defined in the settings)</resource>
<resource name="update_found">A newer version of Greenshot is available! Do you want to download Greenshot {0}?</resource>
<resource name="wait_ie_capture">Please wait while the page in Internet Explorer is captured...</resource>
<resource name="warning">Warning</resource>
<resource name="warning_hotkeys">The hotkey(s) "{0}" could not be registered. This problem is probably caused by another tool claiming usage of the same hotkey(s)! You could either change your hotkey settings or deactivate/change the software making use of the hotkey(s).
<resource name="warning_hotkeys">The hotkey(s) "{0}" could not be registered. This problem is probably caused by another tool{1} claiming usage of the same hotkey(s)! You could either change your hotkey settings or deactivate/change the software making use of the hotkey(s).
All Greenshot features still work directly from the tray icon context menu without hotkeys.</resource>
<resource name="WindowCaptureMode.Aero">Use custom color</resource>

View file

@ -255,7 +255,7 @@ presente, ejemplo: 11_58_32 (más la extension definida en la configuración)</r
<resource name="update_found">Hay una nueva versión de Greenshot disponible, ¿quieres descargar {0}?</resource>
<resource name="wait_ie_capture">Por favor, espera a que se termine de capturar la página en Internet Explorer...</resource>
<resource name="warning">Atención</resource>
<resource name="warning_hotkeys">No se ha podido registrar la tecla rápida "{0}". Probablemente el problema es que alguna otra aplicación también quiere hacerse con esa combinación de teclas. Hay dos posibles soluciones: cambiar la tecla rápida en Greenshot, o desactivar/cambiar la configuración del otro programa que usa esta tecla rápida.
<resource name="warning_hotkeys">No se ha podido registrar la tecla rápida "{0}". Probablemente el problema es que alguna otra aplicación{1} también quiere hacerse con esa combinación de teclas. Hay dos posibles soluciones: cambiar la tecla rápida en Greenshot, o desactivar/cambiar la configuración del otro programa que usa esta tecla rápida.
A pesar de esto, se sigue pudiendo utilizar todas las características de Greenshot directamente desde el menú contextual del icono en la bandeja del sistema.</resource>
<resource name="WindowCaptureMode.Aero">Usar color personalizado</resource>

View file

@ -297,7 +297,7 @@ en cours, par exemple 11_58_32 (plus l'extension définie dans les paramètres)<
<resource name="update_found">Une nouvelle version de Greenshot est disponible ! Voulez-vous télécharger Greenshot {0} ?</resource>
<resource name="wait_ie_capture">Veuillez patienter pendant la capture de la page Internet Explorer...</resource>
<resource name="warning">Avertissement</resource>
<resource name="warning_hotkeys">Le(s) raccourci(s) clavier "{0}" n'a pu être enregistré. Ce problème est probablement dû à un autre outil qui utilise le(s) même(s) raccourci(s) clavier. Vous pouvez soit modifier vos raccourcis clavier soit désactiver/modifier le logiciel utilisant le(s) raccourci(s).
<resource name="warning_hotkeys">Le(s) raccourci(s) clavier "{0}" n'a pu être enregistré. Ce problème est probablement dû à un autre outil{1} qui utilise le(s) même(s) raccourci(s) clavier. Vous pouvez soit modifier vos raccourcis clavier soit désactiver/modifier le logiciel utilisant le(s) raccourci(s).
Toutes les fonctionnalités de Greenshot se lancent aussi directement depuis le menu contextuel de l'icône de la zone de notifications système.</resource>
<resource name="WindowCaptureMode.Aero">Utiliser une couleur personnalisée</resource>

View file

@ -251,7 +251,7 @@ ${hostname} Nom d'hôte du PC</resource>
<resource name="wait_ie_capture">Veuillez patienter pendant que la page dans Internet Explorer est capturée...</resource>
<resource name="warning">Avertissement</resource>
<resource name="warning_hotkeys">Un ou plusieurs raccourcis clavier n'ont pu êtres enregistrés. Il n'est donc pas possible d'utiliser les raccourcis clavier de Greenshot.
Ce problème est probablement dû à un autre outil qui utilise les mêmes raccourcis clavier.
Ce problème est probablement dû à un autre outil{1} qui utilise les mêmes raccourcis clavier.
Veuillez désactiver ce(s) logiciel(s) utilisant le bouton Impr.écran. Vous pouvez également utiliser Greenshot au moyen de son menu contextuel.</resource>
<resource name="WindowCaptureMode.Aero">Utiliser les couleurs personnalisées</resource>
<resource name="WindowCaptureMode.AeroTransparent">Conserver la transparence</resource>

View file

@ -187,7 +187,7 @@ fájl mentése az aktuális dátummal és időponttal, a megadott tárolási hel
<resource name="tooltip_firststart">Jobb klikk ide vagy nyomja meg a PrinScrn gombot.</resource>
<resource name="warning">Figyelem</resource>
<resource name="warning_hotkeys">Egy vagy több gyors billentyű nincs regisztrálva. Ezért lehet az, hogy nem lehet használni.
Ez a hiba akkor fordulhat elő, ha egy másik program használja.
Ez a hiba akkor fordulhat elő, ha egy másik program{1} használja.
Kapcsolja ki a szotvert és használja PrintScrn billentyűt. Egyszerűen használhatja a Greenshot -ot a tálca ikon helyi menüjéből.</resource>
</resources>
</language>

View file

@ -279,7 +279,7 @@ corrente, es: 11_58_32 (più l'estensione definita nelle impostazioni)</resource
<resource name="update_found">Una nuova versione di Greenshot è ora disponibile! Vuoi scaricare Greenshot {0}?</resource>
<resource name="wait_ie_capture">Attendere prego, finchè la pagina di Internet Explorer viene catturata...</resource>
<resource name="warning">Attenzione</resource>
<resource name="warning_hotkeys">La registrazione della/e scorciatoie di tastiera "{0}" non è andata a buon fine. Questo problema è causato probabilmente da un altro software che richiede l'uso delle stesse scorciatoie di tastiera. E' possibile però variare le impostazioni delle scorciatoie, oppure disattivare il software.
<resource name="warning_hotkeys">La registrazione della/e scorciatoie di tastiera "{0}" non è andata a buon fine. Questo problema è causato probabilmente da un altro software{1} che richiede l'uso delle stesse scorciatoie di tastiera. E' possibile però variare le impostazioni delle scorciatoie, oppure disattivare il software.
In alternativa alle scorciatoie di tastiera, tutte le funzioni di Greenshot sono comunque disponibili dal menù visualizzabile con tasto destro del mouse sull'icona G nella barra.</resource>
<resource name="WindowCaptureMode.Aero">Usa colori personalizzati</resource>

View file

@ -183,7 +183,7 @@ bus perimti Greenshot programos, kai ji yra paleista.</resource>
<resource name="settings_waittime">Išlaikymas prieš fotografuojant (ms)</resource>
<resource name="tooltip_firststart">Spauskite dešiniu pelės klavišu arba spauskite "PrintScreen".</resource>
<resource name="warning">Dėmesio</resource>
<resource name="warning_hotkeys">Ne visi numatyti mygtukai priskirti. Tikėtina, kad jie priskirti kitai programai.
<resource name="warning_hotkeys">Ne visi numatyti mygtukai priskirti. Tikėtina, kad jie priskirti kitai programai{1}.
Kad mygtuką Print (PrintScreen) ir jo derinius naudotų Greenshot, reikia uždaryti kitas programas,
kurios naudoja šiuos mygtukus. Arba galima naudoti komandas iš Greenshot programos kontekstinio meniu.</resource>
</resources>

View file

@ -248,7 +248,7 @@ genereert een directorie voor de huidige dag in uw standaard opslag lokatie, b.v
<resource name="update_found">Er is een nieuwere versie van Greenshot beschikbaar! Wilt U Greenshot {0} downloaden?</resource>
<resource name="wait_ie_capture">Wacht terwijl de Internet Explorer pagina wordt vastgelegd...</resource>
<resource name="warning">Waarschuwing</resource>
<resource name="warning_hotkeys">De hotkeys "{0}" kunnen niet geregistreerd worden. Dit probleem komt waarschijnlijk doordat een andere applicatie deze hotkeys al gebruikt. U kunt de hotkeys instellingen van Greenshot veranderen of de andere applicatie stoppen/veranderen.
<resource name="warning_hotkeys">De hotkeys "{0}" kunnen niet geregistreerd worden. Dit probleem komt waarschijnlijk doordat een andere applicatie{1} deze hotkeys al gebruikt. U kunt de hotkeys instellingen van Greenshot veranderen of de andere applicatie stoppen/veranderen.
Alle Greenshot functies werken ook over het context menu.</resource>
<resource name="WindowCaptureMode.Aero">Eigen kleur</resource>

View file

@ -248,7 +248,7 @@ vil lage ei mappe med dagens dato (f.eks. 2012-09-11) der fila blir lagra med ti
<resource name="update_found">Ein nyare versjon av skjermknipsaren er tilgjengeleg! Vil du laste ned Greenshot {0}?</resource>
<resource name="wait_ie_capture">Ver venleg og vent medan Internet Explorer-sida blir knipsa...</resource>
<resource name="warning">Åtvaring!</resource>
<resource name="warning_hotkeys">Snøggtasten/-ane "{0}" kunne ikkje brukast. Sannsynlegvis er den/dei alt i bruk av eit anna program. Du kan anten endre snøggtasten/-ane eller deaktivere/endre dei i det andre verktøyet.
<resource name="warning_hotkeys">Snøggtasten/-ane "{0}" kunne ikkje brukast. Sannsynlegvis er den/dei alt i bruk av eit anna program{1}. Du kan anten endre snøggtasten/-ane eller deaktivere/endre dei i det andre verktøyet.
Alle Greenshot-funksjonar er likevel tilgjengeleg via høgreklikkmenyen i varslingsfeltet nedst til høgre på skjermen.</resource>
<resource name="WindowCaptureMode.Aero">Bruk eigendefinert farge</resource>

View file

@ -284,7 +284,7 @@ na podstawie bieżącego czasu, np. 11-58-32 (plus rozszerzenie zdefiniowane w u
<resource name="wait_ie_capture">Proszę czekać aż strona Internet Explorera zostanie przechwycona...</resource>
<resource name="warning">Ostrzeżenie</resource>
<resource name="warning_hotkeys">Nie udało się zarejestrować jednego lub kilku skrótów klawiaturowych. Z tego powodu używanie skrótów klawiaturowych Greenshota może nie być możliwe.
Przyczyną problemu może być wykorzystywanie tych samych skrótów klawiaturowych przez inną aplikację.
Przyczyną problemu może być wykorzystywanie tych samych skrótów klawiaturowych przez inną aplikację{1}.
Proszę wyłączyć oprogramowanie korzystające z klawisza Print. Możliwe jest również zwyczajne korzystanie ze wszystkich funkcji Greenshota za pomocą menu kontekstowego ikony w obszarze powiadomień na pasku zadań.</resource>
<resource name="WindowCaptureMode.Aero">Używaj własnego koloru</resource>
<resource name="WindowCaptureMode.AeroTransparent">Bez przezroczystości</resource>

View file

@ -648,7 +648,7 @@ namespace GreenshotPlugin.Core {
if (!resources.TryGetValue(key, out returnValue)) {
return "string ###" + key + "### not found";
}
return String.Format(returnValue, param);
return string.Format(returnValue, param);
}
}