Skip to content

Commit 16549e9

Browse files
committed
1.6.1
[Bug fixes] - AutoHDR failed to start UWP apps - Logo wasn't visible in Info popup
1 parent e606dc3 commit 16549e9

File tree

6 files changed

+70
-33
lines changed

6 files changed

+70
-33
lines changed

Source/HDRProfile/ApplicationAdder.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ public void GetFile()
7070
FilePath = filePath;
7171
if (string.IsNullOrEmpty(DisplayName))
7272
DisplayName = new FileInfo(FilePath).Name.Replace(".exe", "");
73+
ApplicationItem = new ApplicationItem(DisplayName, FilePath);
74+
7375
}
7476

7577
public void CreateApplicationItem(object parameter)
7678
{
77-
78-
ApplicationItem = new ApplicationItem(DisplayName, FilePath);
7979
OKClicked?.Invoke(this, EventArgs.Empty);
8080
CloseDialog(parameter as Window);
8181
}
@@ -86,9 +86,12 @@ private void GetUWPAplication()
8686
UWPApplicationDialog uwpDialog = new UWPApplicationDialog();
8787
uwpDialog.OKClicked += (o, e) =>
8888
{
89-
ApplicationItem = uwpDialog.ApplicationItem;
90-
DisplayName = ApplicationItem.DisplayName;
91-
FilePath = ApplicationItem.ApplicationFilePath;
89+
if (uwpDialog.ApplicationItem != null)
90+
{
91+
ApplicationItem = uwpDialog.ApplicationItem;
92+
DisplayName = ApplicationItem.DisplayName;
93+
FilePath = ApplicationItem.ApplicationFilePath;
94+
}
9295
};
9396
if (DialogService != null)
9497
DialogService.ShowDialogModal(uwpDialog);

Source/HDRProfile/ApplicationItem.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
1919
private string _applicationName;
2020
private System.Drawing.Bitmap icon = null;
2121
private bool _restartProcess = false;
22+
private string _uwpFamilyPackageName;
23+
private string _uwpApplicationID;
24+
private string _uwpIconPath;
25+
2226

2327
public string DisplayName { get => displayName; set { displayName = value; OnPropertyChanged(); } }
2428
public string ApplicationName { get => _applicationName; set { _applicationName = value; OnPropertyChanged(); } }
@@ -28,6 +32,13 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
2832

2933
[XmlIgnore]
3034
public Bitmap Icon { get => icon; set { icon = value; OnPropertyChanged(); } }
35+
36+
public string UWPFamilyPackageName { get => _uwpFamilyPackageName; set { _uwpFamilyPackageName = value; OnPropertyChanged(); } }
37+
38+
public string UWPApplicationID { get => _uwpApplicationID; set { _uwpApplicationID = value; OnPropertyChanged(); } }
39+
public string UWPIconPath { get => _uwpIconPath; set { _uwpIconPath = value; try { Icon = new Bitmap(Bitmap.FromFile(value)); } catch { }OnPropertyChanged(); } }
40+
41+
3142
private ApplicationItem()
3243
{
3344

@@ -39,6 +50,14 @@ public ApplicationItem(string displayName, string applicationFilePath)
3950
ApplicationName = new FileInfo(ApplicationFilePath).Name.Replace(".exe", "");
4051
}
4152

53+
public ApplicationItem(string displayName, string applicationFilePath, string uwpFamilyPackageName, string uwpApplicationID, string iconPath = "") : this(displayName, applicationFilePath)
54+
{
55+
IsUWP = true;
56+
UWPFamilyPackageName = uwpFamilyPackageName;
57+
UWPApplicationID = uwpApplicationID;
58+
UWPIconPath = iconPath;
59+
}
60+
4261
public override bool Equals(object obj)
4362
{
4463
return Equals(obj as ApplicationItem);

Source/HDRProfile/AutoHDRDaemon.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,18 +298,25 @@ private void StartApplication(ApplicationItem application)
298298
{
299299
MonitorManager.ActivateHDR();
300300
System.Threading.Thread.Sleep(2500);
301-
Process process = new Process();
302-
process.StartInfo = new ProcessStartInfo(application.ApplicationFilePath);
303-
process.Start();
301+
if (application.IsUWP)
302+
{
303+
UWP.UWPAppsManager.StartUWPApp(application.UWPFamilyPackageName, application.UWPApplicationID);
304+
}
305+
else
306+
{
307+
Process process = new Process();
308+
process.StartInfo = new ProcessStartInfo(application.ApplicationFilePath);
309+
process.Start();
310+
}
304311
System.Threading.Thread.Sleep(2500);
305312
var processes = Process.GetProcessesByName(application.ApplicationName).ToList();
306313
if (processes.Count > 0)
307314
{
315+
Process foundProcess = new Process();
308316
Tools.Logs.Add($"Bring application to front: {application.ApplicationName}", false);
309-
310-
process = processes[0];
311-
if(!process.HasExited && process.Responding)
312-
Tools.BringMainWindowToFront(process.ProcessName);
317+
foundProcess = processes[0];
318+
if(!foundProcess.HasExited && foundProcess.Responding)
319+
Tools.BringMainWindowToFront(foundProcess.ProcessName);
313320
}
314321
else
315322
Tools.Logs.Add($"No started application found: {application.ApplicationName}", false);

Source/HDRProfile/UWP/UWPApp.cs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Threading.Tasks;
88
using System.Xml;
99
using System.Xml.Serialization;
10+
using Windows.ApplicationModel;
1011

1112
namespace AutoHDR.UWP
1213
{
@@ -15,29 +16,34 @@ public class UWPApp
1516
public string Name { get; private set; } = string.Empty;
1617
public string Executable { get; private set; } = string.Empty;
1718
public string InstallLocation { get; private set; } = string.Empty;
19+
public string FamilyPackageName { get; private set; } = string.Empty;
20+
public string ApplicationID { get; private set; } = string.Empty;
1821

19-
public string StartArguments { get; private set; } = string.Empty;
22+
public string IconPath { get; private set; } = string.Empty;
2023

2124

25+
private UWPApp()
26+
{
2227

28+
}
2329

24-
public UWPApp(string installLocation, bool isBundle)
30+
public UWPApp(Package package)
2531
{
26-
InstallLocation = installLocation;
27-
ReadAppxManifest(isBundle);
32+
ReadAppxManifest(package);
2833
}
2934

30-
private void ReadAppxManifest(bool isBundle)
35+
private void ReadAppxManifest(Package package)
3136
{
3237
string appxManifestPath;
33-
if (isBundle)
38+
if (package.IsBundle)
3439
{
3540
appxManifestPath = @"AppxMetadata\AppxBundleManifest.xml";
3641
}
3742
else
3843
{
3944
appxManifestPath = "AppxManifest.xml";
4045
}
46+
InstallLocation = package.InstalledLocation.Path;
4147
appxManifestPath = Path.Combine(InstallLocation, appxManifestPath);
4248
Tools.Logs.Add($"Retrieving data of UWP app ({appxManifestPath})", false);
4349
try
@@ -50,6 +56,9 @@ private void ReadAppxManifest(bool isBundle)
5056
Executable = string.Empty;
5157
if (appxManifest.Applications != null && appxManifest.Applications.Application != null)
5258
Executable = appxManifest.Applications.Application.Executable;
59+
FamilyPackageName = package.Id.FamilyName;
60+
ApplicationID = appxManifest.Applications.Application.Id;
61+
IconPath = Path.Combine(InstallLocation, ((XmlNode[])(appxManifest.Properties.Logo))[0].Value);
5362
}
5463
}
5564
catch (Exception ex)

Source/HDRProfile/UWP/UWPAppsManager.cs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Collections.ObjectModel;
4+
using System.Diagnostics;
45
using System.IO;
56
using System.Linq;
67
using System.Management.Automation;
@@ -51,20 +52,9 @@ public static List<ApplicationItem> GetUWPApps()
5152

5253
try
5354
{
54-
string manifestPath;
55-
if (package.IsBundle)
56-
{
57-
manifestPath = @"AppxMetadata\AppxBundleManifest.xml";
58-
}
59-
else
60-
{
61-
manifestPath = "AppxManifest.xml";
62-
}
63-
manifestPath = Path.Combine(package.InstalledLocation.Path, manifestPath);
64-
65-
UWPApp uwpApp = new UWPApp(package.InstalledLocation.Path, package.IsBundle);
55+
UWPApp uwpApp = new UWPApp(package);
6656
if (!string.IsNullOrEmpty(uwpApp.Executable) && !uwpApp.Name.Contains("ms-resource:"))
67-
uwpApps.Add(new ApplicationItem(uwpApp.Name, Path.Combine(uwpApp.InstallLocation, uwpApp.Executable)) { IsUWP = true});
57+
uwpApps.Add(new ApplicationItem(uwpApp.Name, Path.Combine(uwpApp.InstallLocation, uwpApp.Executable), uwpApp.FamilyPackageName, uwpApp.ApplicationID, uwpApp.IconPath));
6858
}
6959
catch
7060
{
@@ -80,5 +70,14 @@ public static List<ApplicationItem> GetUWPApps()
8070
}
8171
}
8272

73+
public static void StartUWPApp(string FamilyPackage, string applicationID)
74+
{
75+
Process process = new Process();
76+
process.StartInfo.FileName = "explorer.exe";
77+
process.StartInfo.Arguments = $"shell:AppsFolder\\{FamilyPackage}!{applicationID}";
78+
process.Start();
79+
80+
}
81+
8382
}
8483
}

Source/HDRProfile/Views/AutoHDRMainView.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
<ColumnDefinition Width="*" />
4444
<ColumnDefinition Width="Auto" />
4545
</Grid.ColumnDefinitions>
46-
<Image Grid.Column="0" Source="{Binding Icon, Converter={StaticResource BitmapToBitmapImageConverter}}" Width="20" Height="20" Margin="5" Stretch="Fill"></Image>
46+
<Image Grid.Column="0" Source="{Binding Icon, Converter={StaticResource BitmapToBitmapImageConverter}}" Width="50" Height="50" Stretch="Fill"></Image>
4747
<TextBlock Grid.Column="1" Text="{Binding DisplayName}" Margin="5" VerticalAlignment="Center" HorizontalAlignment="Left" />
48-
<CheckBox Grid.Column="3" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" IsChecked="{Binding RestartProcess, Mode=TwoWay}" Margin="5" />
48+
<CheckBox Grid.Column="3" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" IsChecked="{Binding RestartProcess, Mode=TwoWay}" Margin="5" VerticalAlignment="Center" />
4949
</Grid>
5050
</DataTemplate>
5151

0 commit comments

Comments
 (0)