Compare commits
17 commits
Author | SHA1 | Date | |
---|---|---|---|
84dc1367d8 | |||
18816f3fbe | |||
625e509ede | |||
0a5227b071 | |||
c46294b46b | |||
672449fb3e | |||
09730bfbaf | |||
b019023344 | |||
ee6489e090 | |||
a4a97f7b99 | |||
76425a3c50 | |||
9eba20f28a | |||
a271150b0c | |||
bbe0e8dde9 | |||
48bb49671a | |||
6a97161ddd | |||
b9e7aac55f |
11 changed files with 151 additions and 36 deletions
|
@ -210,6 +210,15 @@ namespace EnvyUpdate
|
||||||
|
|
||||||
if (skippedVer != onlineDriv)
|
if (skippedVer != onlineDriv)
|
||||||
{
|
{
|
||||||
|
if (GlobalVars.autoDownload)
|
||||||
|
{
|
||||||
|
if (buttonDownload.IsVisible)
|
||||||
|
{
|
||||||
|
Debug.LogToFile("INFO Auto-Downloading driver.");
|
||||||
|
buttonDownload_Click(null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Debug.LogToFile("INFO Showing update popup notification.");
|
Debug.LogToFile("INFO Showing update popup notification.");
|
||||||
Notify.ShowDrivUpdatePopup();
|
Notify.ShowDrivUpdatePopup();
|
||||||
}
|
}
|
||||||
|
@ -339,9 +348,17 @@ namespace EnvyUpdate
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonDownload_Click(object sender, RoutedEventArgs e)
|
private void buttonDownload_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (GlobalVars.isDownloading)
|
||||||
|
{
|
||||||
|
Debug.LogToFile("WARN A download is already running.");
|
||||||
|
ShowSnackbar(Wpf.Ui.Common.ControlAppearance.Danger, Wpf.Ui.Common.SymbolRegular.ErrorCircle24, Properties.Resources.info_download_running, Properties.Resources.info_download_running_title);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
progressbarDownload.Visibility = Visibility.Visible;
|
progressbarDownload.Visibility = Visibility.Visible;
|
||||||
buttonDownload.IsEnabled = false;
|
buttonDownload.IsEnabled = false;
|
||||||
|
GlobalVars.isDownloading = true;
|
||||||
|
|
||||||
if (File.Exists(Path.Combine(GlobalVars.saveDirectory, onlineDriv + "-nvidia-installer.exe.downloading")))
|
if (File.Exists(Path.Combine(GlobalVars.saveDirectory, onlineDriv + "-nvidia-installer.exe.downloading")))
|
||||||
{
|
{
|
||||||
|
@ -360,6 +377,7 @@ namespace EnvyUpdate
|
||||||
thread.Start();
|
thread.Start();
|
||||||
Debug.LogToFile("INFO Started installer download.");
|
Debug.LogToFile("INFO Started installer download.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -376,6 +394,7 @@ namespace EnvyUpdate
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() => {
|
Application.Current.Dispatcher.Invoke(new Action(() => {
|
||||||
buttonDownload.IsEnabled = true;
|
buttonDownload.IsEnabled = true;
|
||||||
progressbarDownload.Visibility = Visibility.Collapsed;
|
progressbarDownload.Visibility = Visibility.Collapsed;
|
||||||
|
GlobalVars.isDownloading = false;
|
||||||
}));
|
}));
|
||||||
if (e.Error == null)
|
if (e.Error == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -271,7 +271,7 @@
|
||||||
<Version>5.7.0</Version>
|
<Version>5.7.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Fody">
|
<PackageReference Include="Fody">
|
||||||
<Version>6.8.0</Version>
|
<Version>6.8.1</Version>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
@ -282,7 +282,7 @@
|
||||||
<Version>2.2.0</Version>
|
<Version>2.2.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="System.Text.Json">
|
<PackageReference Include="System.Text.Json">
|
||||||
<Version>7.0.3</Version>
|
<Version>8.0.4</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="WPF-UI">
|
<PackageReference Include="WPF-UI">
|
||||||
<Version>2.1.0</Version>
|
<Version>2.1.0</Version>
|
||||||
|
|
|
@ -19,5 +19,7 @@ namespace EnvyUpdate
|
||||||
public static readonly string useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Firefox/115.0";
|
public static readonly string useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Firefox/115.0";
|
||||||
public static bool useAppdata = false;
|
public static bool useAppdata = false;
|
||||||
public static bool hasWrite = true;
|
public static bool hasWrite = true;
|
||||||
|
public static bool autoDownload = false;
|
||||||
|
public static bool isDownloading = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,8 +102,25 @@ namespace EnvyUpdate
|
||||||
GlobalVars.startMinimized = true;
|
GlobalVars.startMinimized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Check for old unfinished downloads
|
||||||
|
string[] leftovers = Directory.GetFiles(GlobalVars.directoryOfExe, "*-nvidia-installer.exe.downloading");
|
||||||
|
if (leftovers.Length > 0)
|
||||||
|
{
|
||||||
|
foreach (string leftover in leftovers)
|
||||||
|
{
|
||||||
|
Debug.LogToFile("INFO Deleting leftover download " + leftover);
|
||||||
|
File.Delete(leftover);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GlobalVars.isMobile = Util.IsMobile();
|
GlobalVars.isMobile = Util.IsMobile();
|
||||||
Debug.LogToFile("INFO Mobile: " + GlobalVars.isMobile);
|
Debug.LogToFile("INFO Mobile: " + GlobalVars.isMobile);
|
||||||
|
|
||||||
|
if (File.Exists(Path.Combine(GlobalVars.saveDirectory, "autodl.envy")))
|
||||||
|
{
|
||||||
|
Debug.LogToFile("INFO Auto-download is enabled.");
|
||||||
|
GlobalVars.autoDownload = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
private void Window_StateChanged(object sender, EventArgs e)
|
private void Window_StateChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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("3.5")]
|
[assembly: AssemblyVersion("3.6")]
|
||||||
[assembly: AssemblyFileVersion("3.5")]
|
[assembly: AssemblyFileVersion("3.6")]
|
||||||
|
|
27
EnvyUpdate/Properties/Resources.Designer.cs
generated
27
EnvyUpdate/Properties/Resources.Designer.cs
generated
|
@ -105,6 +105,24 @@ namespace EnvyUpdate.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to A download process is already running!.
|
||||||
|
/// </summary>
|
||||||
|
public static string info_download_running {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("info_download_running", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Download running.
|
||||||
|
/// </summary>
|
||||||
|
public static string info_download_running_title {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("info_download_running_title", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Driver installer successfully downloaded..
|
/// Looks up a localized string similar to Driver installer successfully downloaded..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -267,6 +285,15 @@ namespace EnvyUpdate.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Download updates automatically.
|
||||||
|
/// </summary>
|
||||||
|
public static string ui_enable_autodownload {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ui_enable_autodownload", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Enable logging to file.
|
/// Looks up a localized string similar to Enable logging to file.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -132,6 +132,12 @@
|
||||||
<data name="info_download_error_title" xml:space="preserve">
|
<data name="info_download_error_title" xml:space="preserve">
|
||||||
<value>Fehler beim Herunterladen</value>
|
<value>Fehler beim Herunterladen</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="info_download_running" xml:space="preserve">
|
||||||
|
<value>Ein Downloadvorgang läuft bereits!</value>
|
||||||
|
</data>
|
||||||
|
<data name="info_download_running_title" xml:space="preserve">
|
||||||
|
<value>Download läuft</value>
|
||||||
|
</data>
|
||||||
<data name="info_download_success" xml:space="preserve">
|
<data name="info_download_success" xml:space="preserve">
|
||||||
<value>Treiber-Installationsdatei erfolgreich heruntergeladen.</value>
|
<value>Treiber-Installationsdatei erfolgreich heruntergeladen.</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -186,6 +192,9 @@
|
||||||
<data name="ui_enable_appdata" xml:space="preserve">
|
<data name="ui_enable_appdata" xml:space="preserve">
|
||||||
<value>Programmdaten in AppData speichern</value>
|
<value>Programmdaten in AppData speichern</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ui_enable_autodownload" xml:space="preserve">
|
||||||
|
<value>Updates automatisch herunterladen</value>
|
||||||
|
</data>
|
||||||
<data name="ui_enable_logging" xml:space="preserve">
|
<data name="ui_enable_logging" xml:space="preserve">
|
||||||
<value>Programm-Log in Datei schreiben</value>
|
<value>Programm-Log in Datei schreiben</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -132,6 +132,12 @@
|
||||||
<data name="info_download_error_title" xml:space="preserve">
|
<data name="info_download_error_title" xml:space="preserve">
|
||||||
<value>Error while downloading</value>
|
<value>Error while downloading</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="info_download_running" xml:space="preserve">
|
||||||
|
<value>A download process is already running!</value>
|
||||||
|
</data>
|
||||||
|
<data name="info_download_running_title" xml:space="preserve">
|
||||||
|
<value>Download running</value>
|
||||||
|
</data>
|
||||||
<data name="info_download_success" xml:space="preserve">
|
<data name="info_download_success" xml:space="preserve">
|
||||||
<value>Driver installer successfully downloaded.</value>
|
<value>Driver installer successfully downloaded.</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -186,6 +192,9 @@
|
||||||
<data name="ui_enable_appdata" xml:space="preserve">
|
<data name="ui_enable_appdata" xml:space="preserve">
|
||||||
<value>Save files to AppData</value>
|
<value>Save files to AppData</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ui_enable_autodownload" xml:space="preserve">
|
||||||
|
<value>Download updates automatically</value>
|
||||||
|
</data>
|
||||||
<data name="ui_enable_logging" xml:space="preserve">
|
<data name="ui_enable_logging" xml:space="preserve">
|
||||||
<value>Enable logging to file</value>
|
<value>Enable logging to file</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -35,9 +35,19 @@
|
||||||
<ui:ToggleSwitch x:Name="chkLog" Checked="chkLog_Checked" Unchecked="chkLog_Unchecked"/>
|
<ui:ToggleSwitch x:Name="chkLog" Checked="chkLog_Checked" Unchecked="chkLog_Unchecked"/>
|
||||||
</ui:CardControl>
|
</ui:CardControl>
|
||||||
|
|
||||||
<ui:CardControl Grid.Row="3" Margin="0,12,0,0" Icon="Folder24" Header="{x:Static p:Resources.ui_enable_appdata}" >
|
<Grid Grid.Row="3">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="5"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<ui:CardControl Grid.Column="0" Margin="0,12,0,0" Icon="Folder24" Header="{x:Static p:Resources.ui_enable_appdata}" VerticalAlignment="Top" >
|
||||||
<ui:ToggleSwitch x:Name="chkAppdata" Checked="chkAppdata_Checked" Unchecked="chkAppdata_Unchecked"/>
|
<ui:ToggleSwitch x:Name="chkAppdata" Checked="chkAppdata_Checked" Unchecked="chkAppdata_Unchecked"/>
|
||||||
</ui:CardControl>
|
</ui:CardControl>
|
||||||
|
<ui:CardControl Grid.Column="2" Margin="0,12,0,0" Icon="ArrowDownload24" Header="{x:Static p:Resources.ui_enable_autodownload}" VerticalAlignment="Top">
|
||||||
|
<ui:ToggleSwitch x:Name="chkAutodl" Checked="chkAutodl_Checked" Unchecked="chkAutodl_Unchecked"/>
|
||||||
|
</ui:CardControl>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
<Label Grid.Row="4" Content="{x:Static p:Resources.ui_licenses}" HorizontalAlignment="Left" VerticalAlignment="Top" FontWeight="Bold"/>
|
<Label Grid.Row="4" Content="{x:Static p:Resources.ui_licenses}" HorizontalAlignment="Left" VerticalAlignment="Top" FontWeight="Bold"/>
|
||||||
<ScrollViewer Grid.Row="5" MaxHeight="700" HorizontalAlignment="Stretch">
|
<ScrollViewer Grid.Row="5" MaxHeight="700" HorizontalAlignment="Stretch">
|
||||||
|
|
|
@ -30,6 +30,16 @@ namespace EnvyUpdate
|
||||||
if (!GlobalVars.hasWrite)
|
if (!GlobalVars.hasWrite)
|
||||||
chkAppdata.IsEnabled = false;
|
chkAppdata.IsEnabled = false;
|
||||||
|
|
||||||
|
if (GlobalVars.autoDownload)
|
||||||
|
chkAutodl.IsChecked = true;
|
||||||
|
|
||||||
|
if (GlobalVars.isDownloading)
|
||||||
|
{
|
||||||
|
chkAppdata.IsEnabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
chkAppdata.IsEnabled = true;
|
||||||
|
|
||||||
textBoxLicEnvyupdate.Text = Properties.Licenses.EnvyUpdate;
|
textBoxLicEnvyupdate.Text = Properties.Licenses.EnvyUpdate;
|
||||||
textBoxLicFody.Text = Properties.Licenses.Fody;
|
textBoxLicFody.Text = Properties.Licenses.Fody;
|
||||||
textBoxLicCostura.Text = Properties.Licenses.CosturaFody;
|
textBoxLicCostura.Text = Properties.Licenses.CosturaFody;
|
||||||
|
@ -91,5 +101,23 @@ namespace EnvyUpdate
|
||||||
|
|
||||||
Debug.LogToFile("INFO Switched to EXE directory.");
|
Debug.LogToFile("INFO Switched to EXE directory.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void chkAutodl_Checked(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
GlobalVars.autoDownload = true;
|
||||||
|
if (!File.Exists(Path.Combine(GlobalVars.saveDirectory, "autodl.envy")))
|
||||||
|
{
|
||||||
|
File.Create(Path.Combine(GlobalVars.saveDirectory, "autodl.envy"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void chkAutodl_Unchecked(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
GlobalVars.autoDownload = false;
|
||||||
|
if (File.Exists(Path.Combine(GlobalVars.saveDirectory, "autodl.envy")))
|
||||||
|
{
|
||||||
|
File.Delete(Path.Combine(GlobalVars.saveDirectory, "autodl.envy"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
22
README.md
22
README.md
|
@ -1,24 +1,18 @@
|
||||||
# Important Information
|
# Important Information
|
||||||
NVIDIA is planning to release their new "[NVIDIA App](https://www.nvidia.com/en-us/software/nvidia-app/)", which will **replace** GeForce Experience and the Control Center. I do not yet know how the new driver package will look like, therefore I cannot guarantee that the update to that new driver that includes the new app will work properly when it releases. I will attempt to test it as soon as it is available.
|
## I am no longer working on this project and I am looking for a new maintainer. Please see [the corresponding issue](https://vcs.diluvian.cc/fyr77/EnvyUpdate/issues/53) for more details.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# EnvyUpdate
|
# EnvyUpdate
|
||||||
A small portable update checker application for Nvidia GPUs
|
A small portable update checker application for Nvidia GPUs
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
Download the [latest release](https://github.com/fyr77/EnvyUpdate/releases/latest/download/EnvyUpdate.exe) (or as a [.zip](https://github.com/fyr77/EnvyUpdate/releases/latest/download/EnvyUpdate.zip)) and run it. Windows SmartScreen Messages can be safely ignored. They only happen because this project is not digitally signed.
|
Download the latest release and run it. Windows SmartScreen Messages can be safely ignored. They only happen because this project is not digitally signed.
|
||||||
|
|
||||||
Legacy 2.x versions (old UI, no automatic driver installation) will continue to be supported and fixed for the time being. Please see [the v2 branch](https://github.com/fyr77/EnvyUpdate/tree/v2) for these.
|
|
||||||
|
|
||||||
The application itself does not update itself. If you notice any bugs or issues, be sure to check for a new version on GitHub!
|
The application itself does not update itself. If you notice any bugs or issues, be sure to check for a new version on GitHub!
|
||||||
|
|
||||||
Enabling Autostart will create a shortcut of EnvyUpdate in the Windows startup folder.
|
Enabling Autostart will create a shortcut of EnvyUpdate in the Windows startup folder (shell:startup).
|
||||||
|
|
||||||
### Virus warnings
|
### Virus warnings
|
||||||
|
|
||||||
|
@ -36,11 +30,11 @@ If EnvyUpdate fails to write to the folder containing the exe file, this option
|
||||||
|
|
||||||
The application should be compatible with all Nvidia GeForce GPUs that have their drivers available on the nvidia.com download page and runs on Windows 10 and up.
|
The application should be compatible with all Nvidia GeForce GPUs that have their drivers available on the nvidia.com download page and runs on Windows 10 and up.
|
||||||
|
|
||||||
It is tested with GeForce Series GPUs. Generally others might work, but they are (currently) untested.
|
It is tested with GeForce Series GPUs. Other series (e.g. Quadro) are unlikely to work and are not supported - if you have a Quadro card and are willing to implement support for them, feel free to reach out or create a PR.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
This application is currently maintained and developed by me (fyr77) alone in my free time.
|
This application is currently unmaintained and developed by me (fyr77) alone in my free time.
|
||||||
|
|
||||||
I always try to implement critical fixes as fast as I can, but other features and minor bug fixes may take a few days or weeks to implement.
|
I always try to implement critical fixes as fast as I can, but other features and minor bug fixes may take a few days or weeks to implement.
|
||||||
|
|
||||||
|
@ -57,7 +51,7 @@ EnvyUpdate is not a replacement for any of these tools. I will still try to impl
|
||||||
|
|
||||||
## Licenses
|
## Licenses
|
||||||
|
|
||||||
* This project: [MIT](https://github.com/fyr77/EnvyUpdate/blob/master/LICENSE)
|
* This project: [MIT](https://https://vcs.diluvian.cc/fyr77/EnvyUpdate/blob/master/LICENSE)
|
||||||
* Fody (dependency of Costura.Fody): [MIT](https://github.com/Fody/Fody/blob/master/License.txt)
|
* Fody (dependency of Costura.Fody): [MIT](https://github.com/Fody/Fody/blob/master/License.txt)
|
||||||
* Costura.Fody (for embedding DLLs into the main executable): [MIT](https://github.com/Fody/Costura/blob/develop/LICENSE)
|
* Costura.Fody (for embedding DLLs into the main executable): [MIT](https://github.com/Fody/Costura/blob/develop/LICENSE)
|
||||||
* Resource Embedder: [MIT](https://www.nuget.org/packages/Resource.Embedder/)
|
* Resource Embedder: [MIT](https://www.nuget.org/packages/Resource.Embedder/)
|
||||||
|
|
Reference in a new issue