Skip to content

Commit 109b9b5

Browse files
authored
Merge pull request #153 from dos-ise/master
.NET8 Migration
2 parents a6e7eda + 03a735f commit 109b9b5

File tree

10 files changed

+335
-340
lines changed

10 files changed

+335
-340
lines changed

UWPHook/App.config

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<value>False</value>
1515
</setting>
1616
<setting name="TargetLanguage" serializeAs="String">
17-
<value/>
17+
<value />
1818
</setting>
1919
<setting name="Seconds" serializeAs="String">
2020
<value>5</value>
@@ -23,7 +23,7 @@
2323
<value>False</value>
2424
</setting>
2525
<setting name="SteamGridDbApiKey" serializeAs="String">
26-
<value/>
26+
<value />
2727
</setting>
2828
<setting name="SelectedSteamGridDB_Style" serializeAs="String">
2929
<value>0</value>
@@ -43,6 +43,9 @@
4343
<setting name="Tags" serializeAs="String">
4444
<value>READY TO PLAY,XBOX</value>
4545
</setting>
46+
<setting name="SelectedLogLevel" serializeAs="String">
47+
<value>0</value>
48+
</setting>
4649
<setting name="SteamGridDB_Style" serializeAs="Xml">
4750
<value>
4851
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -91,8 +94,11 @@
9194
</ArrayOfString>
9295
</value>
9396
</setting>
94-
<setting name="SelectedLogLevel" serializeAs="String">
95-
<value>0</value>
97+
<setting name="ChangeResolution" serializeAs="String">
98+
<value>False</value>
99+
</setting>
100+
<setting name="TargetResolution" serializeAs="String">
101+
<value />
96102
</setting>
97103
</UWPHook.Properties.Settings>
98104
</userSettings>

UWPHook/AppManager.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public static List<String> GetInstalledApps()
187187
/// <returns>Whether this is a known app</returns>
188188
public static bool IsKnownApp(string appName, out string readableName)
189189
{
190-
string appsJson = File.ReadAllText(@"Resources\KnownApps.json");
190+
string appsJson = GetEmbeddedResource("KnownApps.json");
191191
var apps = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(appsJson);
192192

193193
foreach (var kvp in apps)
@@ -203,6 +203,17 @@ public static bool IsKnownApp(string appName, out string readableName)
203203
return false;
204204
}
205205

206+
static string GetEmbeddedResource(string resourceName)
207+
{
208+
var assembly = Assembly.GetExecutingAssembly();
209+
resourceName = assembly.GetManifestResourceNames().First(r => r.Contains(resourceName));
210+
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
211+
using (StreamReader reader = new StreamReader(stream))
212+
{
213+
return reader.ReadToEnd();
214+
}
215+
}
216+
206217
[DllImport("user32.dll")]
207218
private static extern
208219
bool SetForegroundWindow(IntPtr hWnd);

UWPHook/GamesWindow.xaml.cs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Force.Crc32;
22
using Serilog;
33
using Serilog.Core;
4-
using SharpSteam;
54
using System;
65
using System.Collections.Generic;
76
using System.ComponentModel;
@@ -114,6 +113,12 @@ private async Task LauncherAsync(string[] args)
114113
ScriptManager.RunScript("Set-WinUILanguageOverride " + Properties.Settings.Default.TargetLanguage);
115114
}
116115

116+
if (Settings.Default.ChangeResolution && !String.IsNullOrEmpty(Settings.Default.TargetResolution))
117+
{
118+
var targetResolution = ExtractDimensions(Settings.Default.TargetResolution);
119+
ScriptManager.RunScript("Set-DisplayResolution -Width " + targetResolution.Width + " - Height " + targetResolution.Height + " -Force");
120+
}
121+
117122
//The only other parameter Steam will send is the app AUMID
118123
AppManager.LaunchUWPApp(args);
119124

@@ -140,6 +145,19 @@ private async Task LauncherAsync(string[] args)
140145
}
141146
}
142147

148+
static (int Width, int Height) ExtractDimensions(string resolution)
149+
{
150+
var parts = resolution.Split('x');
151+
if (parts.Length == 2)
152+
{
153+
if (int.TryParse(parts[0].Trim(), out int width) && int.TryParse(parts[1].Trim(), out int height))
154+
{
155+
return (width, height);
156+
}
157+
}
158+
throw new FormatException("Invalid resolution format.");
159+
}
160+
143161
/// <summary>
144162
/// Generates a CRC32 hash expected by Steam to link an image with a game in the library
145163
/// See https://blog.yo1.dog/calculate-id-for-non-steam-games-js/ for an example
@@ -385,8 +403,9 @@ private async Task<bool> ExportGames()
385403
{
386404
var users = SteamManager.GetUsers(steam_folder);
387405
var selected_apps = Apps.Entries.Where(app => app.Selected);
388-
var exePath = @"""" + System.Reflection.Assembly.GetExecutingAssembly().Location + @"""";
389-
var exeDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
406+
var processModule = Process.GetCurrentProcess().MainModule;
407+
var exePath = processModule?.FileName;
408+
var exeDir = Path.GetDirectoryName(exePath);
390409

391410
List<Task> gridImagesDownloadTasks = new List<Task>();
392411
bool downloadGridImages = !String.IsNullOrEmpty(Properties.Settings.Default.SteamGridDbApiKey);
@@ -745,6 +764,9 @@ private void Bwr_DoWork(object sender, DoWorkEventArgs e)
745764
{
746765
try
747766
{
767+
//For some reason I need to enforce Set-ExecutionPolicy none
768+
ScriptManager.RunScript("Set-ExecutionPolicy RemoteSigned -Scope Process -Force");
769+
748770
//Get all installed apps on the system excluding frameworks
749771
List<String> installedApps = AppManager.GetInstalledApps();
750772

UWPHook/ProcessManager.cs

Lines changed: 0 additions & 92 deletions
This file was deleted.

UWPHook/Properties/Settings.Designer.cs

Lines changed: 29 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UWPHook/Properties/Settings.settings

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
<Setting Name="Tags" Type="System.String" Scope="User">
3636
<Value Profile="(Default)">READY TO PLAY,XBOX</Value>
3737
</Setting>
38+
<Setting Name="SelectedLogLevel" Type="System.String" Scope="User">
39+
<Value Profile="(Default)">0</Value>
40+
</Setting>
3841
<Setting Name="SteamGridDB_Style" Type="System.Collections.Specialized.StringCollection" Scope="User">
3942
<Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
4043
&lt;ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
@@ -78,8 +81,11 @@
7881
&lt;string&gt;TRACE&lt;/string&gt;
7982
&lt;/ArrayOfString&gt;</Value>
8083
</Setting>
81-
<Setting Name="SelectedLogLevel" Type="System.String" Scope="User">
82-
<Value Profile="(Default)">0</Value>
84+
<Setting Name="ChangeResolution" Type="System.Boolean" Scope="User">
85+
<Value Profile="(Default)">False</Value>
86+
</Setting>
87+
<Setting Name="TargetResolution" Type="System.String" Scope="User">
88+
<Value Profile="(Default)" />
8389
</Setting>
8490
</Settings>
8591
</SettingsFile>

UWPHook/SettingsWindow.xaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@
1212
TextElement.FontSize="14"
1313
FontFamily="Segoe UI Light"
1414
Title="Settings" Height="750" Width="800" Icon="Resources/hook2.ico">
15+
<Window.Resources>
16+
<Style TargetType="ToggleButton" BasedOn="{StaticResource MaterialDesignSwitchToggleButton}">
17+
<Setter Property="LayoutTransform">
18+
<Setter.Value>
19+
<ScaleTransform ScaleX="0.7" ScaleY="0.7" />
20+
</Setter.Value>
21+
</Setter>
22+
</Style>
23+
</Window.Resources>
1524
<Grid>
1625
<Grid.ColumnDefinitions>
1726
<ColumnDefinition Width="27*"/>
@@ -52,14 +61,14 @@
5261
<materialDesign:ColorZone Padding="16" Mode="PrimaryMid" VerticalAlignment="Top" Height="30" Grid.ColumnSpan="4" Grid.Row="0">
5362
<Label Content="Settings" HorizontalAlignment="Left" Margin="-10,-15,0,-17" VerticalAlignment="Top" FontFamily="Segoe UI Semibold" FontSize="14" Height="32" Foreground="#DDFFFFFF"/>
5463
</materialDesign:ColorZone>
55-
<ToggleButton x:Name="language_toggle" Style="{StaticResource MaterialDesignSwitchToggleButton}" ToolTip="MaterialDesignSwitchToggleButton" IsChecked="False" RenderTransformOrigin="0.304,0.444" Grid.Row="1" Margin="5,3,6,4" />
64+
<ToggleButton x:Name="language_toggle" ToolTip="MaterialDesignSwitchToggleButton" IsChecked="False" RenderTransformOrigin="0.304,0.444" Grid.Row="1" Margin="5,3,6,4" />
5665
<Label ToolTip="Some apps use the system language to choose what language to display, this setting will store your current language, change it so you can play in another language and then revert your system back to your default display language." x:Name="label_cultures" Content="Set system language when launching an app*" VerticalAlignment="Center" Height="29" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1"/>
5766
<ComboBox ToolTip="Some apps use the system language to choose what language to display, this setting will store your current language, change it so you can play in another language and then revert your system back to your default display language." x:Name="cultures_comboBox" Margin="0,0,10,0" VerticalAlignment="Center" Height="32" Grid.Column="3" HorizontalAlignment="Right" Width="92" Grid.Row="1"/>
5867
<Label x:Name="label_seconds" ToolTip="If 0, UWPHook will not run in the background and will not update the in-game status" Content="Check if the launched app is running every" VerticalAlignment="Center" Height="29" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2"/>
5968
<ComboBox x:Name="seconds_comboBox" Margin="0,0,10,0" VerticalAlignment="Center" Height="32" Grid.Column="3" HorizontalAlignment="Right" Width="92" Grid.Row="2"/>
60-
<ToggleButton x:Name="streaming_toggle" Style="{DynamicResource MaterialDesignSwitchToggleButton}" ToolTip="MaterialDesignSwitchToggleButton" IsChecked="False" Grid.Row="3" Margin="6,3,5,4" />
69+
<ToggleButton x:Name="streaming_toggle" ToolTip="MaterialDesignSwitchToggleButton" IsChecked="False" Grid.Row="3" Margin="6,3,5,4" />
6170
<Label ToolTip="This fixes Steam in-home Streaming, set this in the host computer." x:Name="label_streaming" Content="Enable streaming mode" VerticalAlignment="Center" Height="29" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="3"/>
62-
<ToggleButton x:Name="change_resolution_toggle" Style="{StaticResource MaterialDesignSwitchToggleButton}" ToolTip="Change host resolution on streaming mode" IsChecked="False" Grid.Row="4" Width="NaN" Margin="5,3,6,3" />
71+
<ToggleButton x:Name="change_resolution_toggle" ToolTip="Change host resolution on streaming mode" IsChecked="False" Grid.Row="4" Margin="5,3,6,3" />
6372
<Label ToolTip="Change the host computer resolution on launch, return to previous after." x:Name="label_resolution" Content="Change host resolution to:" VerticalAlignment="Center" Height="29" Grid.Column="1" Grid.Row="4"/>
6473
<ComboBox x:Name="resolution_comboBox" Margin="0,0,10,0" VerticalAlignment="Center" Height="32" Grid.Column="2" Width="220" Grid.Row="4" Grid.ColumnSpan="2" HorizontalAlignment="Right"/>
6574
<Label ToolTip="Add these tags to exported games, use comma separated values" x:Name="label_tags" Content="Export with these tags:" Margin="0,0,8,0" VerticalAlignment="Center" Height="29" Grid.Column="1" Grid.Row="5"/>

0 commit comments

Comments
 (0)