add onova and debug

This commit is contained in:
Jakob 2021-09-06 22:26:41 +02:00
parent c2b42d40db
commit e41b348acb
14 changed files with 114 additions and 15 deletions

View file

@ -3,4 +3,32 @@
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup> </startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.2" newVersion="5.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration> </configuration>

View file

@ -2,7 +2,8 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EnvyUpdate" xmlns:local="clr-namespace:EnvyUpdate"
StartupUri="MainWindow.xaml"> StartupUri="MainWindow.xaml"
DispatcherUnhandledException="Application_DispatcherUnhandledException">
<Application.Resources> <Application.Resources>
</Application.Resources> </Application.Resources>

View file

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration; using System.Configuration;
using System.Data; using System.Data;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
@ -13,5 +14,10 @@ namespace EnvyUpdate
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
public bool DoHandle { get; set; }
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show(e.Exception.ToString());
}
} }
} }

View file

@ -80,15 +80,46 @@
<Reference Include="Hardcodet.NotifyIcon.Wpf, Version=1.1.0.0, Culture=neutral, PublicKeyToken=682384a853a08aad, processorArchitecture=MSIL"> <Reference Include="Hardcodet.NotifyIcon.Wpf, Version=1.1.0.0, Culture=neutral, PublicKeyToken=682384a853a08aad, processorArchitecture=MSIL">
<HintPath>..\packages\Hardcodet.NotifyIcon.Wpf.1.1.0\lib\net472\Hardcodet.NotifyIcon.Wpf.dll</HintPath> <HintPath>..\packages\Hardcodet.NotifyIcon.Wpf.1.1.0\lib\net472\Hardcodet.NotifyIcon.Wpf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Framework" /> <Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.Build.Utilities.v4.0" /> <Reference Include="Microsoft.Build.Utilities.v4.0" />
<Reference Include="Notifications.Wpf, Version=0.1.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Notifications.Wpf, Version=0.1.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Notifications.Wpf.0.1.1\lib\net461\Notifications.Wpf.dll</HintPath> <HintPath>..\packages\Notifications.Wpf.0.1.1\lib\net461\Notifications.Wpf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Onova, Version=2.6.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Onova.2.6.2\lib\net461\Onova.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Management" /> <Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Text.Encodings.Web, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.5.0.1\lib\net461\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.5.0.2\lib\net461\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
@ -205,7 +236,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" /> <Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('..\packages\Resource.Embedder.2.1.1\build\Resource.Embedder.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Resource.Embedder.2.1.1\build\Resource.Embedder.props'))" /> <Error Condition="!Exists('..\packages\Resource.Embedder.2.1.1\build\Resource.Embedder.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Resource.Embedder.2.1.1\build\Resource.Embedder.props'))" />
<Error Condition="!Exists('..\packages\Fody.6.5.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.5.1\build\Fody.targets'))" /> <Error Condition="!Exists('..\packages\Fody.6.5.2\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.5.2\build\Fody.targets'))" />
</Target> </Target>
<Import Project="..\packages\Fody.6.5.1\build\Fody.targets" Condition="Exists('..\packages\Fody.6.5.1\build\Fody.targets')" /> <Import Project="..\packages\Fody.6.5.2\build\Fody.targets" Condition="Exists('..\packages\Fody.6.5.2\build\Fody.targets')" />
</Project> </Project>

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@
xmlns:p="clr-namespace:EnvyUpdate.Properties" xmlns:p="clr-namespace:EnvyUpdate.Properties"
xmlns:tb="http://www.hardcodet.net/taskbar" xmlns:tb="http://www.hardcodet.net/taskbar"
mc:Ignorable="d" mc:Ignorable="d"
Title="EnvyUpdate" Height="250" Width="300" Icon="icon.ico" StateChanged="Window_StateChanged" Closing="Window_Closing" ResizeMode="CanMinimize"> Title="EnvyUpdate" Height="270" Width="300" Icon="icon.ico" StateChanged="Window_StateChanged" Closing="Window_Closing" ResizeMode="CanMinimize">
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="17*"/> <RowDefinition Height="17*"/>
@ -19,11 +19,12 @@
<Button x:Name="buttonHelp" Content="..." Margin="0,12,10,0" Click="buttonHelp_Click" HorizontalAlignment="Right" Width="20" Height="20" VerticalAlignment="Top" Grid.RowSpan="2"/> <Button x:Name="buttonHelp" Content="..." Margin="0,12,10,0" Click="buttonHelp_Click" HorizontalAlignment="Right" Width="20" Height="20" VerticalAlignment="Top" Grid.RowSpan="2"/>
<TextBlock Margin="10,102,0,0" TextWrapping="Wrap" FontWeight="Bold" Grid.Row="1" HorizontalAlignment="Left" Width="140" Height="16" VerticalAlignment="Top"><Run Text="{x:Static p:Resources.ui_onlinedriver}"/></TextBlock> <TextBlock Margin="10,102,0,0" TextWrapping="Wrap" FontWeight="Bold" Grid.Row="1" HorizontalAlignment="Left" Width="140" Height="16" VerticalAlignment="Top"><Run Text="{x:Static p:Resources.ui_onlinedriver}"/></TextBlock>
<TextBlock x:Name="textblockOnline" HorizontalAlignment="Right" Margin="0,102,10,0" TextWrapping="Wrap" Text="&lt;none&gt;" Width="134" Grid.Row="1" Height="16" VerticalAlignment="Top" TextAlignment="Right"/> <TextBlock x:Name="textblockOnline" HorizontalAlignment="Right" Margin="0,102,10,0" TextWrapping="Wrap" Text="&lt;none&gt;" Width="134" Grid.Row="1" Height="16" VerticalAlignment="Top" TextAlignment="Right"/>
<Button x:Name="buttonDL" Content="⟱" Margin="10,130,10,10" FontSize="20" Click="buttonDL_Click" Foreground="White" Background="#FF3CDA00" Grid.Row="1" IsEnabled="False"/> <Button x:Name="buttonDL" Content="⟱" Margin="10,151,10,10" FontSize="20" Click="buttonDL_Click" Foreground="White" Background="#FF3CDA00" Grid.Row="1" IsEnabled="False"/>
<TextBlock x:Name="textblockGPUName" Margin="10,14,35,0" TextWrapping="Wrap" Text="GPU..." Height="16" VerticalAlignment="Top" TextAlignment="Center" Grid.RowSpan="2" FontWeight="Bold"/> <TextBlock x:Name="textblockGPUName" Margin="10,14,35,0" TextWrapping="Wrap" Text="GPU..." Height="16" VerticalAlignment="Top" TextAlignment="Center" Grid.RowSpan="2" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="10,19,0,0" TextWrapping="Wrap" FontWeight="Bold" Width="140" Height="16" VerticalAlignment="Top" Grid.Row="1" Text="{x:Static p:Resources.ui_localdriver_type}"/> <TextBlock HorizontalAlignment="Left" Margin="10,19,0,0" TextWrapping="Wrap" FontWeight="Bold" Width="140" Height="16" VerticalAlignment="Top" Grid.Row="1" Text="{x:Static p:Resources.ui_localdriver_type}"/>
<TextBlock x:Name="textblockLocalType" HorizontalAlignment="Right" Margin="0,19,10,0" TextWrapping="Wrap" Width="134" Height="16" VerticalAlignment="Top" TextAlignment="Right" Grid.Row="1"><Run Text="&lt;none&gt;"/><LineBreak/><Run/></TextBlock> <TextBlock x:Name="textblockLocalType" HorizontalAlignment="Right" Margin="0,19,10,0" TextWrapping="Wrap" Width="134" Height="16" VerticalAlignment="Top" TextAlignment="Right" Grid.Row="1"><Run Text="&lt;none&gt;"/><LineBreak/><Run/></TextBlock>
<RadioButton x:Name="radioGRD" Content="Game Ready Driver" HorizontalAlignment="Left" Margin="10,40,0,0" Grid.Row="1" VerticalAlignment="Top" IsChecked="True" Checked="radioGRD_Checked"/> <RadioButton x:Name="radioGRD" Content="Game Ready Driver" HorizontalAlignment="Left" Margin="10,40,0,0" Grid.Row="1" VerticalAlignment="Top" IsChecked="True" Checked="radioGRD_Checked"/>
<RadioButton x:Name="radioSD" Content="Studio Driver" HorizontalAlignment="Left" Margin="10,60,0,0" Grid.Row="1" VerticalAlignment="Top" Checked="radioSD_Checked"/> <RadioButton x:Name="radioSD" Content="Studio Driver" HorizontalAlignment="Left" Margin="10,60,0,0" Grid.Row="1" VerticalAlignment="Top" Checked="radioSD_Checked"/>
<CheckBox x:Name="chkAutostart" Content="{x:Static p:Resources.ui_autostart}" HorizontalAlignment="Left" Margin="10,131,0,0" Grid.Row="1" VerticalAlignment="Top" Click="chkAutostart_Click"/>
</Grid> </Grid>
</Window> </Window>

View file

@ -94,13 +94,16 @@ namespace EnvyUpdate
infoWin.ShowDialog(); infoWin.ShowDialog();
} }
private void Load() private async void Load()
{ {
await Util.DoUpdateAsync();
int psid = 0; int psid = 0;
int pfid = 0; int pfid = 0;
int osid = 0; int osid = 0;
int dtcid = 0; int dtcid = 0;
int dtid = 0; int dtid = 0;
//TODO: Make a list of languages and match OS language to driver
//int langid; //int langid;
if (File.Exists(GlobalVars.exepath + "sd.envy")) if (File.Exists(GlobalVars.exepath + "sd.envy"))
@ -127,7 +130,7 @@ namespace EnvyUpdate
textblockGPUName.Text = Debug.GPUname(); textblockGPUName.Text = Debug.GPUname();
} }
//Temporary Studio Driver override logic //Temporary Studio Driver override logic until I have figured out how to detect it automatically
try try
{ {
if (radioSD.IsChecked == true) if (radioSD.IsChecked == true)
@ -230,5 +233,10 @@ namespace EnvyUpdate
Load(); Load();
} }
} }
private void chkAutostart_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("TEST");
}
} }
} }

View file

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

View file

@ -124,7 +124,7 @@ namespace EnvyUpdate.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Autostart. /// Looks up a localized string similar to Run at Windows startup.
/// </summary> /// </summary>
public static string ui_autostart { public static string ui_autostart {
get { get {

View file

@ -139,7 +139,7 @@
<value>Keine NVIDIA GPU gefunden. EnvyUpdate wird sich nun schließen.</value> <value>Keine NVIDIA GPU gefunden. EnvyUpdate wird sich nun schließen.</value>
</data> </data>
<data name="ui_autostart" xml:space="preserve"> <data name="ui_autostart" xml:space="preserve">
<value>Autostart</value> <value>Beim Start von Windows ausführen</value>
</data> </data>
<data name="ui_info_dch" xml:space="preserve"> <data name="ui_info_dch" xml:space="preserve">
<value>DCH Treiber</value> <value>DCH Treiber</value>

View file

@ -139,7 +139,7 @@
<value>No NVIDIA GPU found. Application will exit.</value> <value>No NVIDIA GPU found. Application will exit.</value>
</data> </data>
<data name="ui_autostart" xml:space="preserve"> <data name="ui_autostart" xml:space="preserve">
<value>Autostart</value> <value>Run at Windows startup</value>
</data> </data>
<data name="ui_info_dch" xml:space="preserve"> <data name="ui_info_dch" xml:space="preserve">
<value>DCH driver</value> <value>DCH driver</value>

View file

@ -1,5 +1,7 @@
using IWshRuntimeLibrary; using IWshRuntimeLibrary;
using Microsoft.Win32; using Microsoft.Win32;
using Onova;
using Onova.Services;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
@ -7,6 +9,7 @@ using System.Linq;
using System.Management; using System.Management;
using System.Net; using System.Net;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Xml.Linq; using System.Xml.Linq;
@ -325,6 +328,7 @@ namespace EnvyUpdate
} }
/// <summary> /// <summary>
/// Checks Windows registry for Nvidia DCH Key. If it is present, returns true. /// Checks Windows registry for Nvidia DCH Key. If it is present, returns true.
/// Can also check file system for existance of DLL if registry access fails
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public static bool IsDCH() public static bool IsDCH()
@ -380,5 +384,14 @@ namespace EnvyUpdate
return 1; return 1;
} }
public static async Task DoUpdateAsync()
{
using (var manager = new UpdateManager(new GithubPackageResolver("fyr77", "EnvyUpdate", "EnvyUpdate*.zip"), new ZipPackageExtractor()))
{
// Check for new version and, if available, perform full update and restart
await manager.CheckPerformUpdateAsync();
}
}
} }
} }

View file

@ -1,8 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Costura.Fody" version="4.1.0" targetFramework="net472" /> <package id="Costura.Fody" version="4.1.0" targetFramework="net472" />
<package id="Fody" version="6.5.1" targetFramework="net472" developmentDependency="true" /> <package id="Fody" version="6.5.2" targetFramework="net472" developmentDependency="true" />
<package id="Hardcodet.NotifyIcon.Wpf" version="1.1.0" targetFramework="net472" /> <package id="Hardcodet.NotifyIcon.Wpf" version="1.1.0" targetFramework="net472" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" targetFramework="net472" />
<package id="Notifications.Wpf" version="0.1.1" targetFramework="net472" /> <package id="Notifications.Wpf" version="0.1.1" targetFramework="net472" />
<package id="Onova" version="2.6.2" targetFramework="net472" />
<package id="Resource.Embedder" version="2.1.1" targetFramework="net472" /> <package id="Resource.Embedder" version="2.1.1" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.4" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net472" />
<package id="System.Text.Encodings.Web" version="5.0.1" targetFramework="net472" />
<package id="System.Text.Json" version="5.0.2" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages> </packages>

View file

@ -43,4 +43,5 @@ EnvyUpdate is not a replacement for any of these tools. I will still try to impl
* wpf-notifyicon (for showing an icon in the system tray): [CPOL](https://github.com/hardcodet/wpf-notifyicon/blob/master/LICENSE) * wpf-notifyicon (for showing an icon in the system tray): [CPOL](https://github.com/hardcodet/wpf-notifyicon/blob/master/LICENSE)
* Notifications.Wpf: [MIT](https://github.com/Federerer/Notifications.Wpf/blob/master/LICENSE) * Notifications.Wpf: [MIT](https://github.com/Federerer/Notifications.Wpf/blob/master/LICENSE)
* Resource Embedder: [MIT](https://github.com/MarcStan/resource-embedder/blob/master/LICENSE) * Resource Embedder: [MIT](https://github.com/MarcStan/resource-embedder/blob/master/LICENSE)
* Onova: [LGPL v3](https://github.com/Tyrrrz/Onova/blob/master/License.txt)
* Icon made by Freepik from www.flaticon.com * Icon made by Freepik from www.flaticon.com