[BUG] autostart activate not always working #28

https://github.com/Hofknecht/SystemTrayMenu/issues/28
This commit is contained in:
Markus Hofknecht 2019-07-08 18:56:31 +02:00
parent 47bba47ea4
commit 87e00358ed
6 changed files with 90 additions and 60 deletions

127
Config.cs
View file

@ -1,59 +1,70 @@
using Microsoft.WindowsAPICodePack.Dialogs;
using System;
using System.IO;
namespace SystemTrayMenu
{
public class Config
{
public static string Language = "en";
public static string Path
{
get
{
return Properties.Settings.Default.PathDirectory;
}
}
public static bool LoadOrSetByUser()
using Microsoft.WindowsAPICodePack.Dialogs;
using System.IO;
namespace SystemTrayMenu
{
public class Config
{
public static string Language = "en";
public static string Path
{
Properties.Settings.Default.Upgrade(); // configs located at "%localappdata%\<AssemblyCompany>\"
bool pathOK = Directory.Exists(Properties.Settings.Default.PathDirectory);
if (!pathOK)
{
pathOK = SetFolderByUser();
}
return pathOK;
}
public static bool SetFolderByUser()
{
bool pathOK = false;
bool userAborted = false;
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.InitialDirectory = Path;
dialog.IsFolderPicker = true;
do
{
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
if (Directory.Exists(dialog.FileName))
{
pathOK = true;
Properties.Settings.Default.PathDirectory =
dialog.FileName;
Properties.Settings.Default.Save();
}
}
else
{
userAborted = true;
}
}
while (!pathOK && !userAborted);
return pathOK;
}
}
}
get
{
return Properties.Settings.Default.PathDirectory;
}
}
public static void UpgradeIfNotUpgraded()
{
if (!Properties.Settings.Default.IsUpgraded)
{
// configs located at "%localappdata%\<AssemblyCompany>\"
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.IsUpgraded = true;
Properties.Settings.Default.Save();
}
}
public static bool LoadOrSetByUser()
{
bool pathOK = Directory.Exists(
Properties.Settings.Default.PathDirectory);
if (!pathOK)
{
pathOK = SetFolderByUser();
}
return pathOK;
}
public static bool SetFolderByUser()
{
bool pathOK = false;
bool userAborted = false;
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.InitialDirectory = Path;
dialog.IsFolderPicker = true;
do
{
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
if (Directory.Exists(dialog.FileName))
{
pathOK = true;
Properties.Settings.Default.PathDirectory =
dialog.FileName;
Properties.Settings.Default.Save();
}
}
else
{
userAborted = true;
}
}
while (!pathOK && !userAborted);
return pathOK;
}
}
}

View file

@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.9.1.243")]
[assembly: AssemblyFileVersion("0.9.1.243")]
[assembly: AssemblyVersion("0.9.1.244")]
[assembly: AssemblyFileVersion("0.9.1.244")]

View file

@ -70,5 +70,17 @@ namespace SystemTrayMenu.Properties {
this["HotKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool IsUpgraded {
get {
return ((bool)(this["IsUpgraded"]));
}
set {
this["IsUpgraded"] = value;
}
}
}
}

View file

@ -14,5 +14,8 @@
<Setting Name="HotKey" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="IsUpgraded" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View file

@ -211,6 +211,7 @@ namespace SystemTrayMenu
messageFilter.MouseLeave += fastLeave.Start;
fastLeave.Leave += FadeHalfOrOutIfNeeded;
Config.UpgradeIfNotUpgraded();
if (!Config.LoadOrSetByUser())
{
cancelAppRun = true;

View file

@ -19,6 +19,9 @@
<setting name="HotKey" serializeAs="String">
<value />
</setting>
<setting name="IsUpgraded" serializeAs="String">
<value>False</value>
</setting>
</SystemTrayMenu.Properties.Settings>
</userSettings>
<!--