diff --git a/.gitignore b/.gitignore
index 1ac2acf..b11f9e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ bld/
# Visual Studio 2015 cache/options directory
.vs/
+.vscode/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
@@ -245,3 +246,6 @@ ModelManifest.xml
.fake/
HeliosDisplayManagement.Setup/HeliosDisplayManagement.Setup Data/*
HeliosDisplayManagement.Setup/HeliosDisplayManagement.Setup/*
+/nuget.exe
+/vs_community__1091181154.1584848614.exe
+/MigrationBackup
diff --git a/HeliosDisplayManagement.Reporting/App.config b/HeliosDisplayManagement.Reporting/App.config
index 8609e96..be93275 100644
--- a/HeliosDisplayManagement.Reporting/App.config
+++ b/HeliosDisplayManagement.Reporting/App.config
@@ -2,6 +2,6 @@
-
+
\ No newline at end of file
diff --git a/HeliosDisplayManagement.Reporting/FodyWeavers.xml b/HeliosDisplayManagement.Reporting/FodyWeavers.xml
index 100917a..a5dcf04 100644
--- a/HeliosDisplayManagement.Reporting/FodyWeavers.xml
+++ b/HeliosDisplayManagement.Reporting/FodyWeavers.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
diff --git a/HeliosDisplayManagement.Reporting/FodyWeavers.xsd b/HeliosDisplayManagement.Reporting/FodyWeavers.xsd
new file mode 100644
index 0000000..44a5374
--- /dev/null
+++ b/HeliosDisplayManagement.Reporting/FodyWeavers.xsd
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/HeliosDisplayManagement.Reporting/HeliosDisplayManagement.Reporting.csproj b/HeliosDisplayManagement.Reporting/HeliosDisplayManagement.Reporting.csproj
index 6fc6e01..03268c1 100644
--- a/HeliosDisplayManagement.Reporting/HeliosDisplayManagement.Reporting.csproj
+++ b/HeliosDisplayManagement.Reporting/HeliosDisplayManagement.Reporting.csproj
@@ -1,7 +1,8 @@
-
-
-
+
+
Debug
AnyCPU
@@ -9,7 +10,7 @@
Exe
HeliosDisplayManagement.Reporting
HeliosDisplayManagement.Reporting
- v4.6.2
+ v4.8
512
true
true
@@ -37,17 +38,8 @@
false
-
- ..\packages\Costura.Fody.3.1.5\lib\net46\Costura.dll
-
-
- ..\packages\NvAPIWrapper.Net.0.6.1.15\lib\net45\NvAPIWrapper.dll
-
-
- ..\packages\WindowsDisplayAPI.1.1.0.2\lib\net45\WindowsDisplayAPI.dll
-
@@ -55,7 +47,6 @@
-
@@ -66,15 +57,22 @@
+
+
+ 4.1.0
+
+
+ 6.1.1
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ 0.7.2.63
+
+
+ 1.3.0.13
+
+
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/HeliosDisplayManagement.Reporting/packages.config b/HeliosDisplayManagement.Reporting/packages.config
deleted file mode 100644
index 75a38f2..0000000
--- a/HeliosDisplayManagement.Reporting/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HeliosDisplayManagement.Shared/HeliosDisplayManagement.Shared.csproj b/HeliosDisplayManagement.Shared/HeliosDisplayManagement.Shared.csproj
index af07788..845cee4 100644
--- a/HeliosDisplayManagement.Shared/HeliosDisplayManagement.Shared.csproj
+++ b/HeliosDisplayManagement.Shared/HeliosDisplayManagement.Shared.csproj
@@ -9,7 +9,7 @@
Properties
HeliosDisplayManagement.Shared
HeliosDisplayManagement.Shared
- v4.5
+ v4.8
512
@@ -32,28 +32,12 @@
4
-
- ..\packages\EDIDParser.1.2.0.1\lib\net45\EDIDParser.dll
-
-
- ..\packages\IconLib.Unofficial.0.73.0\lib\net20\IconLib.dll
- True
-
-
- ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll
-
-
- ..\packages\NvAPIWrapper.Net.0.6.1.15\lib\net45\NvAPIWrapper.dll
-
-
- ..\packages\WindowsDisplayAPI.1.2.0.2\lib\net45\WindowsDisplayAPI.dll
-
@@ -87,9 +71,6 @@
DisplayView.cs
-
-
-
ResXFileCodeGenerator
@@ -99,6 +80,23 @@
DisplayView.cs
+
+
+ 1.2.0.1
+
+
+ 0.73.0
+
+
+ 12.0.3
+
+
+ 0.7.2.63
+
+
+ 1.3.0.13
+
+
Debug
AnyCPU
@@ -9,9 +9,11 @@
Properties
HeliosDisplayManagement
HeliosDisplayManagement
- v4.5
+ v4.8
512
true
+ false
+
publish\
true
Disk
@@ -24,10 +26,8 @@
true
0
1.0.0.%2a
- false
false
true
-
AnyCPU
@@ -53,24 +53,11 @@
Icon.ico
+
+ HeliosDisplayManagement.Program
+
-
- ..\packages\CircularProgressBar.2.6.6823.24527\lib\net35-client\CircularProgressBar.dll
-
-
- ..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll
-
-
- ..\packages\HtmlAgilityPack.1.8.9\lib\Net45\HtmlAgilityPack.dll
-
-
- ..\packages\IconLib.Unofficial.0.73.0\lib\net20\IconLib.dll
- True
-
-
- ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll
-
@@ -79,13 +66,6 @@
-
- ..\packages\WindowsDisplayAPI.1.2.0.2\lib\net45\WindowsDisplayAPI.dll
-
-
- ..\packages\WinFormAnimation.1.5.6298.3372\lib\net35-client\WinFormAnimation.dll
- True
-
@@ -133,6 +113,11 @@
+
+ True
+ Resources.resx
+ True
+
ResXFileCodeGenerator
Language.Designer.cs
@@ -155,23 +140,17 @@
Resources.Designer.cs
Designer
-
- True
- Resources.resx
- True
-
SplashForm.cs
-
-
+
False
- Microsoft .NET Framework 4.5.2 %28x86 and x64%29
+ Microsoft .NET Framework 4.8 %28x86 and x64%29
true
@@ -185,6 +164,9 @@
+
+
+
{1cacda43-01c7-4cd4-bf6e-9421a29510fc}
@@ -192,7 +174,30 @@
-
+
+ 2.7.0.7
+
+
+ 1.11.23
+
+
+ 0.73.0
+
+
+ 12.0.3
+
+
+ 2.0.0-beta1.20158.1
+
+
+ 0.3.0-alpha.20158.1
+
+
+ 1.3.0.13
+
+
+ 1.6.0.4
+
+ -->
\ No newline at end of file
diff --git a/HeliosDisplayManagement/Program.cs b/HeliosDisplayManagement/Program.cs
index 37e4556..467e817 100644
--- a/HeliosDisplayManagement/Program.cs
+++ b/HeliosDisplayManagement/Program.cs
@@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
+//using System.CommandLine;
+//using System.CommandLine.Invocation;
+using System.CommandLine.DragonFruit;
using System.Diagnostics;
using System.IO;
using System.Linq;
@@ -17,6 +20,7 @@ namespace HeliosDisplayManagement
{
internal static class Program
{
+
internal static bool GoProfile(Profile profile)
{
if (profile.IsActive)
@@ -69,11 +73,11 @@ namespace HeliosDisplayManagement
IPCService.GetInstance().Status = InstanceStatus.User;
new ShortcutForm(profiles[profileIndex])
{
- FileName = CommandLineOptions.Default.ExecuteFilename,
- SteamAppId = CommandLineOptions.Default.ExecuteSteamApp,
- Arguments = CommandLineOptions.Default.ExecuteArguments,
- ProcessName = CommandLineOptions.Default.ExecuteProcessName,
- Timeout = CommandLineOptions.Default.ExecuteProcessTimeout
+ FileName = CommandLineOptions.ExecuteFilename,
+ SteamAppId = CommandLineOptions.ExecuteSteamApp,
+ Arguments = CommandLineOptions.ExecuteArguments,
+ ProcessName = CommandLineOptions.ExecuteProcessName,
+ Timeout = CommandLineOptions.ExecuteProcessTimeout
}.ShowDialog();
}
@@ -98,12 +102,36 @@ namespace HeliosDisplayManagement
}
}
+ [STAThread]
///
/// The main entry point for the application.
///
- [STAThread]
- private static void Main()
+ /// (required) The startup action to perform: None (Do nothing), SwitchProfile (Change to another profile and optionally run an application/game), CreateShortcut (Create a Desktop Shortcut), EditProfile (Edit a profile)
+ /// (required) UUID string that selects the profile to use.
+ /// (optional) Extra arguments to pass to the application/game when we're switching profile and running the application/game. Also can be used when creating a shortcut.
+ /// (optional) The application/game to start when we're switching profile and running the application/game. Also can be used when creating a shortcut.
+ /// (optional) The process name to wait for when we're temporarily switching profile and running the application/game. Also can be used when creating a shortcut.
+ /// (optional) The time in seconds we should delay starting the application/game when we're temporarily switching profile and running the application/game. Also can be used when creating a shortcut.
+ /// (optional) The Steam AppID wait for when we're temporarily switching profile and running the application/game. Also can be used when creating a shortcut.
+ private static void Main(
+ HeliosStartupAction action,
+ string profileId = null,
+ string arguments = null,
+ string execute = null,
+ string processName = null,
+ uint processTimeout = 30u,
+ uint steamId = 0u)
{
+
+ // Save these in CommandLineOptions for easy access from other parts of the application
+ CommandLineOptions.Action = action;
+ CommandLineOptions.ProfileId = profileId;
+ CommandLineOptions.ExecuteArguments = arguments;
+ CommandLineOptions.ExecuteFilename = execute;
+ CommandLineOptions.ExecuteProcessName = processName;
+ CommandLineOptions.ExecuteProcessTimeout = processTimeout;
+ CommandLineOptions.ExecuteSteamApp = steamId;
+
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
@@ -116,15 +144,15 @@ namespace HeliosDisplayManagement
}
var profiles = Profile.GetAllProfiles().ToArray();
- var profileIndex = !string.IsNullOrWhiteSpace(CommandLineOptions.Default.ProfileId) &&
+ var profileIndex = !string.IsNullOrWhiteSpace(CommandLineOptions.ProfileId) &&
profiles.Length > 0
? Array.FindIndex(profiles,
p =>
- p.Id.Equals(CommandLineOptions.Default.ProfileId,
+ p.Id.Equals(null,
StringComparison.InvariantCultureIgnoreCase))
: -1;
- switch (CommandLineOptions.Default.Action)
+ switch (CommandLineOptions.Action)
{
case HeliosStartupAction.SwitchProfile:
SwitchProfile(profiles, profileIndex);
@@ -144,6 +172,8 @@ namespace HeliosDisplayManagement
break;
}
+
+
}
catch (Exception e)
{
@@ -182,9 +212,9 @@ namespace HeliosDisplayManagement
.Another_instance_of_this_program_is_in_working_state_Please_close_other_instances_before_trying_to_switch_profile);
}
- if (!string.IsNullOrWhiteSpace(CommandLineOptions.Default.ExecuteFilename))
+ if (!string.IsNullOrWhiteSpace(CommandLineOptions.ExecuteFilename))
{
- if (!File.Exists(CommandLineOptions.Default.ExecuteFilename))
+ if (!File.Exists(CommandLineOptions.ExecuteFilename))
{
throw new Exception(Language.Executable_file_not_found);
}
@@ -194,17 +224,17 @@ namespace HeliosDisplayManagement
throw new Exception(Language.Can_not_change_active_profile);
}
- var process = Process.Start(CommandLineOptions.Default.ExecuteFilename,
- CommandLineOptions.Default.ExecuteArguments);
- var processes = new Process[0];
+ var process = System.Diagnostics.Process.Start(CommandLineOptions.ExecuteFilename,
+ CommandLineOptions.ExecuteArguments);
+ var processes = new System.Diagnostics.Process[0];
- if (!string.IsNullOrWhiteSpace(CommandLineOptions.Default.ExecuteProcessName))
+ if (!string.IsNullOrWhiteSpace(CommandLineOptions.ExecuteProcessName))
{
var ticks = 0;
- while (ticks < CommandLineOptions.Default.ExecuteProcessTimeout * 1000)
+ while (ticks < CommandLineOptions.ExecuteProcessTimeout * 1000)
{
- processes = Process.GetProcessesByName(CommandLineOptions.Default.ExecuteProcessName);
+ processes = System.Diagnostics.Process.GetProcessesByName(CommandLineOptions.ExecuteProcessName);
if (processes.Length > 0)
{
@@ -271,9 +301,9 @@ namespace HeliosDisplayManagement
}
}
}
- else if (CommandLineOptions.Default.ExecuteSteamApp > 0)
+ else if (CommandLineOptions.ExecuteSteamApp > 0)
{
- var steamGame = new SteamGame(CommandLineOptions.Default.ExecuteSteamApp);
+ var steamGame = new SteamGame(CommandLineOptions.ExecuteSteamApp);
if (!SteamGame.SteamInstalled)
{
@@ -302,16 +332,16 @@ namespace HeliosDisplayManagement
var address = $"steam://rungameid/{steamGame.AppId}";
- if (!string.IsNullOrWhiteSpace(CommandLineOptions.Default.ExecuteArguments))
+ if (!string.IsNullOrWhiteSpace(CommandLineOptions.ExecuteArguments))
{
- address += "/" + CommandLineOptions.Default.ExecuteArguments;
+ address += "/" + CommandLineOptions.ExecuteArguments;
}
- var steamProcess = Process.Start(address);
+ var steamProcess = System.Diagnostics.Process.Start(address);
// Wait for steam game to update and then run
var ticks = 0;
- while (ticks < CommandLineOptions.Default.ExecuteProcessTimeout * 1000)
+ while (ticks < CommandLineOptions.ExecuteProcessTimeout * 1000)
{
if (steamGame.IsRunning)
{
diff --git a/HeliosDisplayManagement/packages.config b/HeliosDisplayManagement/packages.config
deleted file mode 100644
index 5df4d83..0000000
--- a/HeliosDisplayManagement/packages.config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file