├── .gitignore ├── DisplayDriverUninstallerTutorial.docx ├── DisplayDriverUninstallerTutorialGuide.docx ├── LICENSE ├── README.md ├── README_JA.md ├── Readme_ES.md └── display-driver-uninstaller ├── Display Driver Uninstaller.sln ├── Display Driver Uninstaller ├── AUDIOCleanup.vb ├── AppLaunchOptions.vb ├── AppLog.vb ├── AppPaths.vb ├── AppSettings.vb ├── Application.xaml ├── Application.xaml.vb ├── CheckUpdate.vb ├── CleanupEngine.vb ├── Converters.vb ├── DDU.ico ├── DDUSafeBootService.vb ├── DebugWindow.xaml ├── DebugWindow.xaml.vb ├── DesktopIconRemover.vb ├── Display Driver Uninstaller.vbproj ├── English.xml ├── FileIO.vb ├── FrmAbout.xaml ├── FrmAbout.xaml.vb ├── FrmLaunch.xaml ├── FrmLaunch.xaml.vb ├── FrmLog.xaml ├── FrmLog.xaml.vb ├── FrmMain.xaml ├── FrmMain.xaml.vb ├── FrmOptions.xaml ├── FrmOptions.xaml.vb ├── FrmSystemRestore.xaml ├── FrmSystemRestore.xaml.vb ├── GPUCleanup.vb ├── Inf.vb ├── Language.vb ├── LogEntry.vb ├── My Project │ ├── AssemblyInfo.vb │ ├── MyExtensions │ │ └── MyWpfExtension.vb │ ├── Resources.Designer.vb │ ├── Resources.resx │ ├── Settings.Designer.vb │ ├── Settings.settings │ └── app.manifest ├── MyRegistry.vb ├── Resources │ ├── DDU.ico │ ├── amd_logo.png │ ├── become_a_patron_button.png │ ├── btn_donate_LG.gif │ ├── btn_partner.png │ ├── creative_logo.png │ ├── ddu_logo.png │ ├── discord@2x.png │ ├── intel_logo.jpg │ ├── nvidia_logo.png │ └── realtek-logo.PNG ├── ThreadSettings.vb ├── Tools.vb ├── Win32 │ ├── ACL.vb │ ├── ImpersonateLoggedOnUser.vb │ ├── ServiceInstaller.vb │ ├── SetupAPI.vb │ ├── SetupAPI_Inf.vb │ ├── SystemRestore.vb │ ├── TaskScheduler.vb │ ├── Win32.vb │ └── WinAPI.vb ├── app.config └── bin │ └── Release │ ├── License.txt │ └── settings │ ├── AMD │ ├── classroot.cfg │ ├── clsidleftover.cfg │ ├── driverfiles.cfg │ ├── driverfilesKMAFD.cfg │ ├── driverfilesKMPFD.cfg │ ├── driverfilesKMPFD.cfg.bak │ ├── interface.cfg │ ├── packages.cfg │ ├── services.cfg │ └── servicesaudio.cfg │ ├── INTEL │ ├── classroot.cfg │ ├── clsidleftover.cfg │ ├── clsidleftoverigs.cfg │ ├── driverfiles.cfg │ ├── interface.cfg │ ├── packages.cfg │ ├── packagesendurance.cfg │ ├── packagesigs.cfg │ ├── packagesoneapi.cfg │ ├── services.cfg │ ├── servicesaudio.cfg │ └── servicesigs.cfg │ ├── Languages │ ├── Arabic.xml │ ├── Bulgarian.xml │ ├── Chinese (Simplified).xml │ ├── Chinese (Traditional).xml │ ├── Czech.xml │ ├── Danish.xml │ ├── Dutch.xml │ ├── Finnish.xml │ ├── French.xml │ ├── German.xml │ ├── Greek.xml │ ├── Hebrew.xml │ ├── Hungarian.xml │ ├── Italian.xml │ ├── Japanese.xml │ ├── Korean.xml │ ├── Latvian.xml │ ├── Macedonian (Latin).xml │ ├── Persian.xml │ ├── Polish.xml │ ├── Portuguese.xml │ ├── PortugueseBrazil.xml │ ├── Russian.xml │ ├── Serbian (Cyrilic).xml │ ├── Serbian (Latin).xml │ ├── Slovak.xml │ ├── Slovenian.xml │ ├── Spanish (Spain).xml │ ├── Spanish.xml │ ├── Swedish.xml │ ├── Thai.xml │ ├── Turkish.xml │ ├── Ukrainian.xml │ └── _For translators - ReadMe.txt │ ├── NVIDIA │ ├── classroot.cfg │ ├── classrootgfe.cfg │ ├── clsidleftover.cfg │ ├── clsidleftoverGFE.cfg │ ├── clsidleftoverNVB.cfg │ ├── driverfiles.cfg │ ├── gfedriverfiles.cfg │ ├── gfedriverfiles.cfg.bak │ ├── gfeservice.cfg │ ├── interface.cfg │ ├── interfaceGFE.cfg │ ├── nvbdriverfiles.cfg │ ├── nvbservice.cfg │ ├── packages.cfg │ ├── rtxaud.cfg │ ├── services.cfg │ └── servicesaudio.cfg │ └── REALTEK │ ├── classroot.cfg │ ├── clsidleftover.cfg │ ├── driverfiles.cfg │ ├── packages.cfg │ └── services.cfg ├── Issues and solutions.txt ├── License.txt ├── NSIS+Uninstall.nsi ├── Readme.txt └── info.txt /.gitignore: -------------------------------------------------------------------------------- 1 | obj 2 | **/bin/Debug/ 3 | .vs 4 | -------------------------------------------------------------------------------- /DisplayDriverUninstallerTutorial.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wagnard/display-drivers-uninstaller/6f3a9803fbf7304de0cee4c7092fdc2abc0331a7/DisplayDriverUninstallerTutorial.docx -------------------------------------------------------------------------------- /DisplayDriverUninstallerTutorialGuide.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wagnard/display-drivers-uninstaller/6f3a9803fbf7304de0cee4c7092fdc2abc0331a7/DisplayDriverUninstallerTutorialGuide.docx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2014 Wagnardsoft 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # display-drivers-uninstaller 2 | Display Driver Uninstaller (DDU) / Cleaner made for Display Drivers (NVIDIA/AMD/INTEL) and Audio drivers (Realtek / Sound Blaster) 3 | 4 | 5 | Display Driver Uninstaller is a driver removal utility that can help you completely uninstall AMD/NVIDIA/INTEL graphics card drivers and packages from your system, trying to remove all leftovers (including registry keys, folders and files, driver store). 6 | 7 | The AMD/NVIDIA/INTEL video drivers can normally be uninstalled from the Windows Control panel, this driver uninstaller program was designed to be used in cases where the standard driver uninstall fails, or when you need to thoroughly delete NVIDIA and ATI video card drivers. 8 | 9 | The current effect after you use this driver removal tool will be similar as if its the first time you install a new driver just like a fresh, clean install of Windows. As with any tool of this kind, we recommend creating a new system restore point before using it, so that you can revert your system at any time if you run into problems. 10 | 11 | 12 | If you have problem installing older driver or newer one, give it a try as there are some reports that it fix those problems. 13 | 14 | RECOMMENDED USAGE : 15 | 16 | -The tool can be used in Normal mode but for absolute stability and effectiveness, when using DDU, Safemode is always the best and using the button#1 (Clean+restart) are the recommended options. 17 | 18 | -You do NOT need to uninstall the driver before using DDU. 19 | 20 | - I would like to gather feedback from you guys. Tell me if it was success or not. 21 | Do a backup or a system restore point. (DDU make a lot of registry changes). 22 | 23 | -For people with driver problem, if this tool gave you any success into fixing some issues your are currently experiencing, please share your result. 24 | 25 | 26 | Keep note that NVIDIA/AMD/INTEL did not have anything to do with this, I do not work at or for NVIDIA/AMD/INTEL and they should not be held responsible for anything that may go wrong with this application. 27 | 28 | 29 | 30 | 31 | DDU (V18.0.0.4 and previous) 32 | System Requirements: 33 | 34 | .NET framework 3.0 or higher. 35 | 36 | Windows XP up to 10 is supported X86/X64 (Windows 10 insider preview is at your own risk) 37 | -------------------- 38 | DDU (V18.0.0.5 and higher) 39 | System Requirements: 40 | 41 | .NET framework 4.6 or higher. 42 | 43 | Windows Vista_SP2 up to 10 is supported X86/X64 (Windows 10 insider preview is at your own risk) 44 | 45 | -------------------- 46 | DDU (V18.0.4.7 and higher) 47 | System Requirements: 48 | 49 | .NET framework 4.8 or higher. 50 | 51 | Windows 7 SP1 up to 11 is supported X86/X64 (Windows 1x insider preview is at your own risk) 52 | 53 | DOWNLOAD : (note: some anti-virus report false positive sometime.) 54 | 55 | Official download at https://www.wagnardsoft.com 56 | -------------------------------------------------------------------------------- /README_JA.md: -------------------------------------------------------------------------------- 1 | # display-drivers-uninstaller 2 | Display Driver Uninstaller (DDU) / ディスプレイドライバー (NVIDIA/AMD/INTEL) とオーディオドライバー (Realtek / Sound Blaster) 用に作られたクリーナー 3 | 4 | 5 | Display Driver Uninstaller は AMD/NVIDIA/INTEL グラフィックカードドライバーとパッケージをシステムから完全にアンインストールし、すべての残骸 (レジストリキー、フォルダーとファイル、ドライバーストアを含む) を削除するにのに役立つドライバー削除ユーティリティです。 6 | 7 | AMD/NVIDIA/INTEL ビデオドライバーは通常、Windows コントロールパネルからアンインストールできますが、Display Driver Uninstaller は通常のアンインストールに失敗した場合や、NVIDIA および AMD、INTEL ビデオカードドライバーを完全に削除する必要がある場合に使用するように設計されています。 8 | 9 | このドライバー削除ツールを使用後の効果は、Windows をクリーンインストールした場合のように初めて新しいドライバーをインストールする状態と同等になります。この種のツールを使用する場合は、問題が発生した場合にいつでもシステムを元に戻せるように、使用前にシステム復元ポイントを作成することをお勧めします。 10 | 11 | 12 | 古いドライバーまたは新しいドライバーのインストールで問題が解決したという報告例がいくつかあるため、どうぞお試しください。 13 | 14 | **推奨される使用方法 :** 15 | 16 | - このツールは通常モードでも使用できますが、絶対的な安定性と有効性を得るには**セーフモードでの実行**が常に最適です。ボタン #1 (削除 + 再起動) を使用することをお勧めします。 17 | 18 | - DDU を使用する前にドライバーをアンインストールする必要はありません。 19 | 20 | - 皆様からのフィードバックを集めています。成功したかどうかを教えてください。 21 | バックアップまたは復元ポイントを作成してください (DDU はレジストリを大幅に変更します)。 22 | 23 | - ドライバーの問題を抱えているユーザーが、このツールによって現在発生している問題の解決に成功した場合は結果を共有してください。 24 | 25 | 26 | NVIDIA/AMD/INTEL は一切関係はありません。私は、NVIDIA/AMD/INTEL に勤務もしくはそれらの会社のために務めてもいません。このアプリケーションで何か問題が発生した場合、それらのメーカーは責任は一切負いません。 27 | 28 | 29 | 30 | 31 | **DDU (V18.0.0.4 とそれ以前)** 32 | 33 | システム要件: 34 | 35 | - .NET Framework 3.0 またはそれ以降 36 | - Windows XP から 10 までサポート (Windows 10 インサイダープレビューは自己責任です) 37 | - 32 ビット、64 ビットの環境に対応 38 | 39 | -------------------- 40 | **DDU (V18.0.0.5 またはそれ以降)** 41 | 42 | システム要件: 43 | 44 | - .NET Framework 4.6 またはそれ以降 45 | - Windows Vista SP2 から 10 までサポート (Windows 10 インサイダープレビューは自己責任です) 46 | - 32 ビット、64 ビットの環境に対応 47 | 48 | -------------------- 49 | **DDU (V18.0.4.7 またはそれ以降)** 50 | 51 | システム要件: 52 | 53 | - .NET Framework 4.8 またはそれ以降 54 | - Windows 7 SP1 から 11 までサポート (Windows 1x インサイダープレビューは自己責任です) 55 | - 32 ビット、64 ビットの環境に対応 56 | 57 | **ダウンロード : (注意: 一部のウイルス対策ソフトで時々誤検知をすることがあります)** 58 | 59 | 公式ダウンロード: https://www.wagnardsoft.com 60 | -------------------------------------------------------------------------------- /Readme_ES.md: -------------------------------------------------------------------------------- 1 | # Display Driver Uninstaller 2 | Display Driver Uninstaller (DDU) / Limpiador para controladores de pantalla (NVIDIA/AMD/INTEL) y controladores de audio (Realtek) 3 | 4 | Display Driver Uninstaller es una utilidad de limpieza de controladores que puede ayudarte a desinstalar completamente los paquetes y controladores de tarjetas gráficas AMD/NVIDIA/INTEL de tu sistema, intentando eliminar todos los restos (incluyendo claves de registro, carpetas y archivos, almacén de controladores). 5 | 6 | Los controladores de vídeo AMD/NVIDIA/INTEL se pueden desinstalar normalmente desde el panel de Control de Windows, este programa desinstalador de controladores se diseñó para ser utilizado en casos en los que falla la desinstalación estándar de controladores, o cuando necesitas eliminar a fondo los controladores de tarjetas de vídeo NVIDIA y ATI. 7 | 8 | El efecto actual después de utilizar esta herramienta de eliminación de controladores será similar al de la primera vez que instalas un nuevo controlador, como si se tratara de una instalación nueva y limpia de Windows. Como con cualquier herramienta de este tipo, te recomendamos que crees un nuevo punto de restauración del sistema antes de utilizarla, para que puedas revertir tu sistema en cualquier momento si tienes problemas. 9 | 10 | Si tienes problemas para instalar un controlador antiguo o uno nuevo, pruébalo, ya que hay algunos informes que indican que soluciona esos problemas. 11 | 12 | ## USO RECOMENDADO: 13 | - La herramienta se puede utilizar en modo Normal, pero para una estabilidad y eficacia absoluta, el Modo Seguro es siempre lo mejor y utilizar el botón#1 (Limpiar+Reiniciar) son las opciones recomendadas. 14 | - No es necesario desinstalar el controlador antes de utilizar DDU. 15 | - Me gustaría recoger opiniones de ustedes. Cuéntame si has tenido éxito o no. 16 | Haz una copia de seguridad o un punto de restauración del sistema. (DDU hace muchos cambios en el registro). 17 | - Para las personas con problemas de controladores, si esta herramienta te ha ayudado a solucionar algún problema que estés experimentando, por favor, comparte tu resultado. 18 | Ten en cuenta que NVIDIA/AMD/INTEL no tienen nada que ver con esto, no trabajo en o para NVIDIA/AMD/INTEL y no deben ser considerados responsables de cualquier cosa que pueda ir mal con esta aplicación. 19 | 20 | ### DDU (V18.0.0.4 y anteriores) 21 | Requisitos del sistema: 22 | - .NET framework 3.0 o superior. 23 | * Compatible con Windows XP hasta 10 X86/X64 (Windows 10 insider preview bajo tu propia responsabilidad) 24 | 25 | ### DDU (V18.0.0.5 y anteriores) 26 | Requisitos del sistema: 27 | - .NET framework 4.6 o superior. 28 | * Compatible con Windows Vista_SP2 hasta 10 X86/X64 (la versión preliminar de Windows 10 corre por tu cuenta y riesgo) 29 | 30 | ### DDU (V18.0.4.7 y superior) 31 | Requisitos del sistema: 32 | - .NET framework 4.8 o superior. 33 | * Compatible con Windows 7 SP1 hasta 11 X86/X64 (la versión preliminar de Windows 1x corre por tu cuenta y riesgo) 34 | 35 | Descarga oficial en https://www.wagnardsoft.com 36 | - 37 | (Nota: algunos antivirus a veces dan falso positivo.) 38 | - 39 | -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.7.34009.444 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Display Driver Uninstaller", "Display Driver Uninstaller\Display Driver Uninstaller.vbproj", "{C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {41D48BBF-F679-4C95-BA64-1FF1F84CC128} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/AppLaunchOptions.vb: -------------------------------------------------------------------------------- 1 | 'These values are not saved to Settings.xml (if need to save/load, use AppSettings) 2 | ' Add all commandline args you need or want here (with default setting) 3 | 4 | Namespace Display_Driver_Uninstaller 5 | 6 | Public Class AppLaunchOptions 7 | Public Property Arguments As String = Nothing 8 | Public Property ArgumentsArray As String() = Nothing 9 | 10 | Public Property Silent As Boolean = False 11 | Public Property Shutdown As Boolean = False 12 | Public Property Restart As Boolean = False 13 | Public Property NoSafeModeMsg As Boolean = False 14 | 15 | Public Property CleanComplete As Boolean = False 16 | 17 | Public Property CleanNvidia As Boolean = False 18 | Public Property CleanAmd As Boolean = False 19 | Public Property CleanIntel As Boolean = False 20 | Public Property CleanRealtek As Boolean = False 21 | Public Property CleanSoundBlaster As Boolean = False 22 | 23 | Public Property PreventWinUpdateArg As Boolean = False 24 | 25 | Public Property RemoveMonitors As Boolean = False 26 | 27 | Public Property NoRestorePoint As Boolean = False 28 | 29 | Public Property RemoveCrimsonCache As Boolean = False 30 | Public Property RemoveAMDDirs As Boolean = False 31 | Public Property RemoveAudioBus As Boolean = False 32 | Public Property RemoveAMDKMPFD As Boolean = False 33 | Public Property RemoveNvidiaDirs As Boolean = False 34 | Public Property RemovePhysX As Boolean = False 35 | Public Property Remove3DTVPlay As Boolean = False 36 | Public Property RemoveGFE As Boolean = False 37 | Public Property RemoveNVBROADCAST As Boolean = False 38 | Public Property RemoveNVCP As Boolean = False 39 | Public Property KeepNVCPopt As Boolean = False 40 | Public Property RemoveINTELCP As Boolean = False 41 | Public Property RemoveINTELIGS As Boolean = False 42 | Public Property RemoveEnduranceGaming As Boolean = False 43 | Public Property RemoveOneAPI As Boolean = False 44 | Public Property RemoveAMDCP As Boolean = False 45 | Public Property RemoveVulkan As Boolean = False 46 | Public Property NoSetupAPI As Boolean = False 47 | 48 | 49 | 50 | Public ReadOnly Property HasCleanArg As Boolean 51 | Get 52 | Return (CleanNvidia OrElse CleanAmd OrElse CleanIntel OrElse CleanRealtek OrElse CleanSoundBlaster) 53 | End Get 54 | End Property 55 | 56 | #Region "Visit links" 57 | 58 | ' Remember to update HasLinkArg and LoadArgs() ! 59 | Public VisitDonate As Boolean = False 60 | Public VisitPatron As Boolean = False 61 | Public VisitDiscord As Boolean = False 62 | Public VisitSVN As Boolean = False 63 | Public VisitGuru3DNvidia As Boolean = False 64 | Public VisitGuru3DAMD As Boolean = False 65 | Public VisitDDUHome As Boolean = False 66 | Public VisitGeforce As Boolean = False 67 | Public VisitOffer As Boolean = False 68 | 69 | Public ReadOnly Property HasLinkArg As Boolean 70 | Get 71 | If VisitDonate OrElse 72 | VisitPatron OrElse 73 | VisitDiscord OrElse 74 | VisitSVN OrElse 75 | VisitGuru3DNvidia OrElse 76 | VisitGuru3DAMD OrElse 77 | VisitDDUHome OrElse 78 | VisitGeforce OrElse 79 | VisitOffer Then 80 | 81 | Return True 82 | End If 83 | 84 | Return False 85 | End Get 86 | End Property 87 | 88 | #End Region 89 | 90 | Public Sub LoadArgs(ByVal args() As String) 91 | If args IsNot Nothing AndAlso args.Length > 0 Then 92 | ArgumentsArray = args 93 | Arguments = String.Join(" ", args) 94 | 95 | For Each Argument As String In args 96 | Select Case True 97 | Case StrContainsAny(Argument, True, "-5648674614687") : Application.IsDebug = True 98 | Case StrContainsAny(Argument, True, "-processkilled") : Application.Settings.ProcessKilled = True 99 | Case StrContainsAny(Argument, True, "-visitdonate") : VisitDonate = True 100 | Case StrContainsAny(Argument, True, "-visitpatron") : VisitPatron = True 101 | Case StrContainsAny(Argument, True, "-visitdiscord") : VisitDiscord = True 102 | Case StrContainsAny(Argument, True, "-visitsvn") : VisitSVN = True 103 | Case StrContainsAny(Argument, True, "-visitguru3dnvidia") : VisitGuru3DNvidia = True 104 | Case StrContainsAny(Argument, True, "-visitguru3damd") : VisitGuru3DAMD = True 105 | Case StrContainsAny(Argument, True, "-visitdduhome") : VisitDDUHome = True 106 | Case StrContainsAny(Argument, True, "-visitgeforce") : VisitGeforce = True 107 | Case StrContainsAny(Argument, True, "-visitoffer") : VisitOffer = True 108 | 109 | 110 | Case StrContainsAny(Argument, True, "-Silent") : Silent = True 111 | Case StrContainsAny(Argument, True, "-Shutdown") : Shutdown = True 112 | Case StrContainsAny(Argument, True, "-Restart") : Restart = True 113 | Case StrContainsAny(Argument, True, "-NoSafeModeMsg") : NoSafeModeMsg = True 114 | Case StrContainsAny(Argument, True, "-cleancomplete") : CleanComplete = True 115 | Case StrContainsAny(Argument, True, "-CleanNvidia") : CleanNvidia = True 116 | Case StrContainsAny(Argument, True, "-CleanAmd") : CleanAmd = True 117 | Case StrContainsAny(Argument, True, "-CleanIntel") : CleanIntel = True 118 | Case StrContainsAny(Argument, True, "-CleanRealtek") : CleanRealtek = True 119 | Case StrContainsAny(Argument, True, "-CleanSoundBlaster") : CleanSoundBlaster = True 120 | 121 | Case StrContainsAny(Argument, True, "-PreventWinUpdate") : PreventWinUpdateArg = True 122 | Case StrContainsAny(Argument, True, "-NoRestorePoint") : NoRestorePoint = True 123 | Case StrContainsAny(Argument, True, "-RemovePhysx") : RemovePhysX = True 124 | Case StrContainsAny(Argument, True, "-RemoveGFE") : RemoveGFE = True 125 | Case StrContainsAny(Argument, True, "-RemoveNVBROADCAST") : RemoveNVBROADCAST = True 126 | Case StrContainsAny(Argument, True, "-RemoveNVCP") : RemoveNVCP = True 127 | Case StrContainsAny(Argument, True, "-KeepNVCPopt") : KeepNVCPopt = True 128 | Case StrContainsAny(Argument, True, "-RemoveINTELCP") : RemoveINTELCP = True 129 | Case StrContainsAny(Argument, True, "-RemoveINTELIGS") : RemoveINTELIGS = True 130 | Case StrContainsAny(Argument, True, "-RemoveEnduranceGaming") : RemoveEnduranceGaming = True 131 | Case StrContainsAny(Argument, True, "-RemoveOneAPI") : RemoveOneAPI = True 132 | Case StrContainsAny(Argument, True, "-RemoveAMDCP") : RemoveAMDCP = True 133 | Case StrContainsAny(Argument, True, "-RemoveAMDKMPFD") : RemoveAMDKMPFD = True 134 | Case StrContainsAny(Argument, True, "-RemoveAudioBus") : RemoveAudioBus = True 135 | Case StrContainsAny(Argument, True, "-RemoveVulkan") : RemoveVulkan = True 136 | Case StrContainsAny(Argument, True, "-NoSetupAPI") : NoSetupAPI = True 137 | Case StrContainsAny(Argument, True, "-removemonitors") : RemoveMonitors = True 138 | Case StrContainsAny(Argument, True, "-RemoveNvidiaDirs") : RemoveNvidiaDirs = True 139 | Case StrContainsAny(Argument, True, "-RemoveAMDDirs") : RemoveAMDDirs = True 140 | Case StrContainsAny(Argument, True, "-Remove3DTVPlay") : Remove3DTVPlay = True 141 | Case StrContainsAny(Argument, True, "-RemoveCrimsonCache") : RemoveCrimsonCache = True 142 | Case StrContainsAny(Argument, True, "-cleanallgpus") 143 | RemoveVulkan = True 144 | RemoveAudioBus = True 145 | RemoveAMDKMPFD = True 146 | RemoveAMDCP = True 147 | RemoveINTELCP = True 148 | RemoveINTELIGS = True 149 | RemoveOneAPI = True 150 | RemoveEnduranceGaming = True 151 | RemoveNVCP = True 152 | RemoveNVBROADCAST = True 153 | RemoveGFE = True 154 | RemovePhysX = True 155 | CleanIntel = True 156 | CleanAmd = True 157 | CleanNvidia = True 158 | RemoveNvidiaDirs = True 159 | RemoveAMDDirs = True 160 | RemoveMonitors = True 161 | Remove3DTVPlay = True 162 | RemoveCrimsonCache = True 163 | ' TODO: Add cmdline args for those RemoveXXXX properties 164 | ' Case StrContainsAny(Argument, True, "-RemNvidiaDirs") : RemoveNvidiaDirs = True 165 | 166 | ' ALSO: change default values for those RemoveXXXX properties if needed 167 | ' They are used if launched with cmdLine 'CleanNvidia', 'CleanAmd' or 'CleanIntel' 168 | End Select 169 | Next 170 | Else 171 | Arguments = Nothing 172 | End If 173 | End Sub 174 | 175 | End Class 176 | End Namespace -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/AppPaths.vb: -------------------------------------------------------------------------------- 1 | Imports System.IO 2 | Imports System.Reflection 3 | Imports Display_Driver_Uninstaller.Win32 4 | 5 | Namespace Display_Driver_Uninstaller 6 | Public Class AppPaths 7 | 8 | Private m_exefile As String 9 | Private m_dirapp As String 10 | Private m_dirapproaming As String 11 | Private m_dirsettings As String 12 | Private m_dirlanguage As String 13 | Private m_dirlog As String 14 | Private m_roaming As String 15 | Private m_sysdrive As String 16 | Private m_windir As String 17 | Private m_programfiles As String 18 | Private m_programfilesx86 As String 19 | Private m_userpath As String 20 | Private m_system32 As String 21 | Private m_syswow64 As String 22 | 23 | 'NOTE!!! All paths ends with \ 24 | 'No need to check for ending \ 25 | 26 | ''' Fullpath to application's .Exe 27 | Public Property AppExeFile As String 28 | Get 29 | Return m_exefile 30 | End Get 31 | Private Set(value As String) 32 | m_exefile = value 33 | End Set 34 | End Property 35 | ''' Fullpath to application's base directory (where .exe is) 36 | Public Property AppBase As String 37 | Get 38 | Return m_dirapp 39 | End Get 40 | Private Set(value As String) 41 | m_dirapp = value 42 | End Set 43 | End Property 44 | ''' Application's base directory + \Settings\ 45 | Public Property Settings As String 46 | Get 47 | Return m_dirsettings 48 | End Get 49 | Private Set(value As String) 50 | m_dirsettings = value 51 | End Set 52 | End Property 53 | ''' C:\%Users%\AppData\Roaming\DisplayDriverUnistaller\ 54 | Public Property AppBaseRoaming As String 55 | Get 56 | Return m_dirapproaming 57 | End Get 58 | Private Set(value As String) 59 | m_dirapproaming = value 60 | End Set 61 | End Property 62 | ''' Application's base directory + \Settings\Langauges\ 63 | Public Property Language As String 64 | Get 65 | Return m_dirlanguage 66 | End Get 67 | Private Set(value As String) 68 | m_dirlanguage = value 69 | End Set 70 | End Property 71 | ''' Application's base directory + \DDU Logs\ 72 | Public Property Logs As String 73 | Get 74 | Return m_dirlog 75 | End Get 76 | Private Set(value As String) 77 | m_dirlog = value 78 | End Set 79 | End Property 80 | ''' System Drive ( "C:\" ) 81 | Public Property SystemDrive As String 82 | Get 83 | Return m_sysdrive 84 | End Get 85 | Private Set(value As String) 86 | m_sysdrive = value 87 | End Set 88 | End Property 89 | ''' Windows Directory ( "C:\Windows\" ) 90 | Public Property WinDir As String 91 | Get 92 | Return m_windir 93 | End Get 94 | Private Set(value As String) 95 | m_windir = value 96 | End Set 97 | End Property 98 | ''' ProgramFiles Directory(32 and 64bits) ( "C:\Program Files\" ) 99 | Public Property ProgramFiles As String 100 | Get 101 | Return m_programfiles 102 | End Get 103 | Private Set(value As String) 104 | m_programfiles = value 105 | End Set 106 | End Property 107 | ''' ( "C:\windows\system32\" ) 108 | Public Property System32 As String 109 | Get 110 | Return m_system32 111 | End Get 112 | Private Set(value As String) 113 | m_system32 = value 114 | End Set 115 | End Property 116 | ''' ( "C:\windows\sysWOW64\" )(64bit only) 117 | Public Property SysWOW64 As String 118 | Get 119 | Return m_syswow64 120 | End Get 121 | Private Set(value As String) 122 | m_syswow64 = value 123 | End Set 124 | End Property 125 | ''' ProgramFiles(x86) Directory(64bits only) ( "C:\Program Files (x86)\" ) 126 | Public Property ProgramFilesx86 As String 127 | Get 128 | Return m_programfilesx86 129 | End Get 130 | Private Set(value As String) 131 | m_programfilesx86 = value 132 | End Set 133 | End Property 134 | ''' Roaming Directory ( "C:\%Users%\AppData\Roaming\" most likely C:\Windows\System32\comfig\systemprofile\AppData\Roaming\) 135 | Public Property Roaming As String 136 | Get 137 | Return m_roaming 138 | End Get 139 | Private Set(value As String) 140 | m_roaming = value 141 | End Set 142 | End Property 143 | 144 | Public Property UserPath As String 145 | Get 146 | Return m_userpath 147 | End Get 148 | Private Set(value As String) 149 | m_userpath = value 150 | End Set 151 | End Property 152 | 153 | Public Sub New(Optional ByVal createPaths As Boolean = True) 154 | If createPaths Then 155 | m_exefile = Assembly.GetExecutingAssembly().Location 156 | m_dirapp = Path.GetDirectoryName(AppExeFile) 157 | 158 | 'm_roaming = Environment.GetFolderPath(Environment.SpecialFolder.System) + "\config\systemprofile\AppData\Roaming\" 159 | m_roaming = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) 160 | m_dirapproaming = Path.Combine(m_roaming, Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "")) 161 | 162 | m_dirsettings = Path.Combine(m_dirapp, "Settings\") 163 | m_dirlanguage = Path.Combine(m_dirsettings, "Languages\") 164 | m_dirlog = Path.Combine(m_dirapp, "DDU Logs\") 165 | 166 | m_sysdrive = Environment.GetEnvironmentVariable("systemdrive") 167 | m_windir = Environment.GetEnvironmentVariable("windir") 168 | m_programfiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) 169 | m_programfilesx86 = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + " (x86)" 170 | m_system32 = Environment.GetFolderPath(Environment.SpecialFolder.System) 171 | WinAPI.GetFolderPath(WinAPI.CLSID.SYSTEMX86, m_syswow64) 172 | 173 | 174 | Using regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("software\microsoft\windows nt\currentversion\profilelist") 175 | m_userpath = regkey.GetValue("ProfilesDirectory", String.Empty).ToString 176 | End Using 177 | 178 | If Not m_userpath.EndsWith("\") Then m_userpath &= Path.DirectorySeparatorChar 179 | If Not m_dirapp.EndsWith("\") Then m_dirapp &= Path.DirectorySeparatorChar 180 | 181 | If Not m_roaming.EndsWith("\") Then m_roaming &= Path.DirectorySeparatorChar 182 | If Not m_dirapproaming.EndsWith("\") Then m_dirapproaming &= Path.DirectorySeparatorChar 183 | 184 | If Not m_dirsettings.EndsWith("\") Then m_dirsettings &= Path.DirectorySeparatorChar 185 | If Not m_dirlanguage.EndsWith("\") Then m_dirlanguage &= Path.DirectorySeparatorChar 186 | If Not m_dirlog.EndsWith("\") Then m_dirlog &= Path.DirectorySeparatorChar 187 | 188 | If Not m_sysdrive.EndsWith("\") Then m_sysdrive &= Path.DirectorySeparatorChar 189 | If Not m_windir.EndsWith("\") Then m_windir &= Path.DirectorySeparatorChar 190 | If Not m_programfiles.EndsWith("\") Then m_programfiles &= Path.DirectorySeparatorChar 191 | If Not m_system32.EndsWith("\") Then m_system32 &= Path.DirectorySeparatorChar 192 | If Not m_syswow64.EndsWith("\") Then m_syswow64 &= Path.DirectorySeparatorChar 193 | If Not m_programfilesx86.EndsWith("\") Then m_programfilesx86 &= Path.DirectorySeparatorChar 194 | 195 | CreateDirectories(m_dirsettings, m_dirlanguage, m_dirlog) 196 | End If 197 | End Sub 198 | 199 | Public Sub CreateDirectories(ParamArray dirs As String()) 200 | For Each dir As String In dirs 201 | Try 202 | If Not Directory.Exists(dir) Then 203 | Directory.CreateDirectory(dir) 204 | End If 205 | Catch ex As Exception 206 | Application.Log.AddException(ex) 207 | End Try 208 | Next 209 | End Sub 210 | End Class 211 | End Namespace -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/Application.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/CheckUpdate.vb: -------------------------------------------------------------------------------- 1 | Imports Display_Driver_Uninstaller.Win32 2 | Imports System.Net 3 | Imports System.Net.Http 4 | Imports System.Reflection 5 | Imports System.Threading.Tasks 6 | 7 | Namespace Display_Driver_Uninstaller 8 | 9 | Public Class CheckUpdate 10 | 11 | Private Shared _alreadyChecked As Boolean = False 12 | 13 | Private Async Function CheckUpdatesThreadAsync(ByVal currentVersion As Version, ByVal checkUpdate As Boolean) As Task 14 | Dim status As UpdateStatus = UpdateStatus.NotChecked 15 | 16 | Try 17 | If Not checkUpdate Then 18 | status = UpdateStatus.NotAllowed 19 | Return 20 | End If 21 | 22 | Try 23 | If Not My.Computer.Network.IsAvailable Then 24 | status = UpdateStatus.Error 25 | Return 26 | End If 27 | Catch ex As Exception 28 | Application.Log.AddWarning(ex) 29 | status = UpdateStatus.Error 30 | Return 31 | End Try 32 | 33 | ' Add this code before creating the HttpClient 34 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13 Or SecurityProtocolType.Tls12 35 | 36 | Dim url As String = "https://www.wagnardsoft.com/DDU/currentversion2.txt" 37 | Dim newestVersionStr As String = Nothing 38 | 39 | Using client As New HttpClient() 40 | Dim version = If(Assembly.GetExecutingAssembly().GetName().Version?.ToString(), "1.0.0.0") 41 | 42 | client.DefaultRequestHeaders.UserAgent.ParseAdd($"DDU/{version} (Display Driver Uninstaller)") 43 | client.Timeout = TimeSpan.FromMilliseconds(5000) ' Set timeout to 5 seconds 44 | Try 45 | Dim response As HttpResponseMessage = Await client.GetAsync(url) 46 | response.EnsureSuccessStatusCode() ' Throws an exception if the request is not successful 47 | 48 | newestVersionStr = Await response.Content.ReadAsStringAsync() 49 | response.Dispose() 50 | Catch ex As Exception 51 | ' Handle the error appropriately 52 | status = UpdateStatus.Error 53 | Application.Log.AddException(ex) 54 | Return 55 | End Try 56 | End Using 57 | 58 | Dim newestVersion As Integer 59 | Dim applicationVersion As Integer 60 | 61 | If IsNullOrWhitespace(newestVersionStr) OrElse 62 | Not Integer.TryParse(newestVersionStr.Replace(".", ""), newestVersion) OrElse 63 | Not Integer.TryParse(currentVersion.ToString().Replace(".", ""), applicationVersion) Then 64 | 65 | status = UpdateStatus.Error 66 | Return 67 | End If 68 | 69 | If newestVersion <= applicationVersion Then 70 | status = UpdateStatus.NoUpdates 71 | Else 72 | status = UpdateStatus.UpdateAvailable 73 | End If 74 | 75 | Catch ex As Exception 76 | Application.Log.AddWarning(ex, "Checking updates failed!") 77 | status = UpdateStatus.Error 78 | Finally 79 | Update(status) 80 | _alreadyChecked = True 81 | End Try 82 | End Function 83 | 84 | 85 | Private Sub Update(ByVal status As UpdateStatus) 86 | If Not Application.Data.Settings.Dispatcher.CheckAccess() Then 87 | Application.Data.Settings.Dispatcher.Invoke(Sub() Update(status)) 88 | Else 89 | Application.Settings.UpdateAvailable = status 90 | 91 | If status = UpdateStatus.UpdateAvailable Then 92 | If Not System.Security.Principal.WindowsIdentity.GetCurrent().IsSystem AndAlso Not Application.LaunchOptions.Silent Then 93 | Select Case MessageBox.Show(Languages.GetTranslation("frmMain", "Messages", "Text1"), "Display Driver Uninstaller", MessageBoxButton.YesNoCancel, MessageBoxImage.Information) 94 | Case MessageBoxResult.Yes 95 | WinAPI.OpenVisitLink(" -visitdduhome") 96 | 97 | 'Me.Close() 98 | Return 99 | 100 | Case MessageBoxResult.No 101 | MessageBox.Show(Languages.GetTranslation("frmMain", "Messages", "Text2"), "Display Driver Uninstaller", MessageBoxButton.OK, MessageBoxImage.Information) 102 | End Select 103 | End If 104 | End If 105 | End If 106 | End Sub 107 | 108 | Public Async Function CheckUpdatesAsync() As Task 109 | Try 110 | If _alreadyChecked Then Return 111 | 112 | If Application.IsDebug Then 113 | Application.Settings.UpdateAvailable = UpdateStatus.Error 114 | Return 115 | End If 116 | 117 | Dim currentVersion As Version = Application.Settings.AppVersion 118 | Dim checkUpdate As Boolean = Application.Settings.CheckUpdates 119 | 120 | If Application.Settings.EnableSafeModeDialog Then 121 | ' Run the async update check in the background 122 | Await Task.Run(Async Function() 123 | Try 124 | Await CheckUpdatesThreadAsync(currentVersion, checkUpdate) 125 | Catch ex As Exception 126 | Application.Log.AddException(ex, "Failed during async update check!") 127 | End Try 128 | End Function) 129 | Return 130 | End If 131 | 132 | ' Run the async update check directly 133 | Await CheckUpdatesThreadAsync(currentVersion, checkUpdate) 134 | 135 | Catch ex As Exception 136 | Application.Log.AddException(ex, "Failed to start UpdateCheck!") 137 | End Try 138 | End Function 139 | End Class 140 | End Namespace -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/DDU.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wagnard/display-drivers-uninstaller/6f3a9803fbf7304de0cee4c7092fdc2abc0331a7/display-driver-uninstaller/Display Driver Uninstaller/DDU.ico -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/DDUSafeBootService.vb: -------------------------------------------------------------------------------- 1 | Imports System.ServiceProcess 2 | Imports System.Threading 3 | 4 | Namespace Display_Driver_Uninstaller 5 | Public Class DDUSafeBootService 6 | Inherits ServiceBase 7 | 8 | Public Sub New() 9 | ServiceName = "DDUSafeBootHandler" 10 | CanStop = True 11 | CanPauseAndContinue = False 12 | AutoLog = True 13 | End Sub 14 | 15 | Protected Overrides Sub OnStart(ByVal args() As String) 16 | Try 17 | ' Attendre un peu pour s'assurer que tous les services nécessaires sont démarrés 18 | Thread.Sleep(2000) 19 | 20 | ' Exécuter bcdedit pour supprimer safeboot 21 | Dim processInfo As New ProcessStartInfo(Application.Paths.System32 & "BCDEDIT", "/deletevalue safeboot") With { 22 | .UseShellExecute = False, 23 | .CreateNoWindow = True, 24 | .Verb = "runas" 25 | } 26 | 27 | Using process As New Process With { 28 | .StartInfo = processInfo 29 | } 30 | process.Start() 31 | process.WaitForExit() 32 | End Using 33 | 34 | EventLog.WriteEntry("DDUSafeBootHandler", "BCDEDIT completed. Stopping the service...", EventLogEntryType.Information) 35 | Dim stopThread As New Thread(AddressOf StopService) 36 | stopThread.Start() 37 | Catch ex As Exception 38 | EventLog.WriteEntry("DDUSafeBootHandler", ex.Message, EventLogEntryType.Error) 39 | End Try 40 | End Sub 41 | 42 | Private Sub StopService() 43 | ' Wait for a short period before stopping the service, just to ensure everything is settled 44 | Thread.Sleep(500) 45 | 46 | ' Stop the service 47 | Me.Stop() 48 | End Sub 49 | 50 | Protected Overrides Sub OnStop() 51 | ' Clean up and uninstall the service 52 | Try 53 | ' Uninstall the service 54 | UninstallService() 55 | EventLog.WriteEntry("DDUSafeBootHandler", "Service Uninstalled", EventLogEntryType.Information) 56 | Catch ex As Exception 57 | EventLog.WriteEntry("DDUSafeBootHandler", "Error uninstalling the service: " & ex.Message, EventLogEntryType.Error) 58 | End Try 59 | End Sub 60 | 61 | Private Sub UninstallService() 62 | Try 63 | Dim processInfo As New ProcessStartInfo("sc.exe", "delete DDUSafeBootHandler") With { 64 | .UseShellExecute = True, 65 | .CreateNoWindow = True, 66 | .Verb = "runas" 67 | } 68 | Using process As New Process With { 69 | .StartInfo = processInfo 70 | } 71 | process.Start() 72 | process.WaitForExit() 73 | End Using 74 | Catch ex As Exception 75 | EventLog.WriteEntry("DDUSafeBootHandler", "Error uninstalling the service: " & ex.Message, EventLogEntryType.Error) 76 | End Try 77 | End Sub 78 | End Class 79 | End Namespace -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/DesktopIconRemover.vb: -------------------------------------------------------------------------------- 1 | Imports System.IO 2 | Imports IWshRuntimeLibrary 3 | Public Class DesktopIconRemover 4 | Public Shared Function GetShortcutTargetPath(shortcutPath As String) As String 5 | If System.IO.File.Exists(shortcutPath) Then 6 | Dim shell As WshShell = New WshShell() 7 | Dim shortcut As IWshShortcut = CType(shell.CreateShortcut(shortcutPath), IWshShortcut) 8 | Return shortcut.TargetPath 9 | Else 10 | Throw New FileNotFoundException("Shortcut file not found.", shortcutPath) 11 | End If 12 | End Function 13 | End Class -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/Display Driver Uninstaller.vbproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {C2CAA02A-13BD-4131-AA5F-4EF80F0C16B2} 8 | WinExe 9 | 10 | 11 | Display Driver Uninstaller 12 | v4.8 13 | Custom 14 | 15 | 16 | 17 | 18 | false 19 | publish\ 20 | true 21 | Disk 22 | false 23 | Foreground 24 | 7 25 | Days 26 | false 27 | false 28 | true 29 | 0 30 | 1.0.0.%2a 31 | false 32 | true 33 | 34 | 35 | AnyCPU 36 | true 37 | full 38 | true 39 | true 40 | true 41 | bin\Debug\ 42 | Display Driver Uninstaller.xml 43 | 42314 44 | 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036 45 | false 46 | 47 | 48 | AnyCPU 49 | Full 50 | true 51 | false 52 | true 53 | false 54 | true 55 | bin\Release\ 56 | Display Driver Uninstaller.xml 57 | 42314 58 | 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036 59 | false 60 | 61 | 62 | On 63 | 64 | 65 | Binary 66 | 67 | 68 | On 69 | 70 | 71 | On 72 | 73 | 74 | My Project\app.manifest 75 | 76 | 77 | DDU.ico 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.26100.0\Windows.winmd 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | MSBuild:Compile 99 | Designer 100 | 101 | 102 | 103 | 104 | 105 | 106 | Component 107 | 108 | 109 | 110 | 111 | FrmSystemRestore.xaml 112 | 113 | 114 | 115 | 116 | True 117 | True 118 | Resources.resx 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | FrmAbout.xaml 127 | 128 | 129 | FrmLaunch.xaml 130 | 131 | 132 | FrmLog.xaml 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | DebugWindow.xaml 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | Designer 151 | MSBuild:Compile 152 | 153 | 154 | Designer 155 | MSBuild:Compile 156 | 157 | 158 | MSBuild:Compile 159 | Designer 160 | 161 | 162 | Application.xaml 163 | Code 164 | 165 | 166 | FrmMain.xaml 167 | Code 168 | 169 | 170 | Designer 171 | MSBuild:Compile 172 | 173 | 174 | Designer 175 | MSBuild:Compile 176 | 177 | 178 | Designer 179 | MSBuild:Compile 180 | 181 | 182 | Designer 183 | MSBuild:Compile 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | FrmOptions.xaml 205 | 206 | 207 | 208 | Code 209 | 210 | 211 | Microsoft.VisualBasic.WPF.MyExtension 212 | 1.0.0.0 213 | 214 | 215 | True 216 | Settings.settings 217 | True 218 | 219 | 220 | VbMyResourcesResXFileCodeGenerator 221 | My.Resources 222 | Designer 223 | Resources.Designer.vb 224 | 225 | 226 | 227 | 228 | SettingsSingleFileGenerator 229 | Settings.Designer.vb 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | Designer 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | False 267 | .NET Framework 3.5 SP1 268 | false 269 | 270 | 271 | 272 | 273 | {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} 274 | 1 275 | 0 276 | 0 277 | tlbimp 278 | False 279 | True 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | -------------------------------------------------------------------------------- /display-driver-uninstaller/Display Driver Uninstaller/FrmAbout.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 54 | 55 | 56 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 174 | 175 | 176 | 54 | 59 |