VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Installer/VBoxGuestAdditionsUninstall.nsh@ 96776

Last change on this file since 96776 was 96776, checked in by vboxsync, 20 months ago

Add/Nt/Installer: More work related to iexplore.ico removal as it seems it really was needed when we use a .lnk to point to the .url file in the install dir, now I've changed it to generate an identical Website.url file for the start menu too. This way we get the right browser icon associated .url files.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 5.5 KB
Line 
1; $Id: VBoxGuestAdditionsUninstall.nsh 96776 2022-09-16 23:58:49Z vboxsync $
2;; @file
3; VBoxGuestAdditionsUninstall.nsh - Guest Additions uninstallation.
4;
5
6;
7; Copyright (C) 2006-2022 Oracle and/or its affiliates.
8;
9; This file is part of VirtualBox base platform packages, as
10; available from https://www.virtualbox.org.
11;
12; This program is free software; you can redistribute it and/or
13; modify it under the terms of the GNU General Public License
14; as published by the Free Software Foundation, in version 3 of the
15; License.
16;
17; This program is distributed in the hope that it will be useful, but
18; WITHOUT ANY WARRANTY; without even the implied warranty of
19; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20; General Public License for more details.
21;
22; You should have received a copy of the GNU General Public License
23; along with this program; if not, see <https://www.gnu.org/licenses>.
24;
25; SPDX-License-Identifier: GPL-3.0-only
26;
27
28!macro UninstallCommon un
29Function ${un}UninstallCommon
30
31 Delete /REBOOTOK "$INSTDIR\install*.log"
32 Delete /REBOOTOK "$INSTDIR\uninst.exe"
33 Delete /REBOOTOK "$INSTDIR\${PRODUCT_NAME}.url"
34
35 ; Remove common files
36 Delete /REBOOTOK "$INSTDIR\VBoxDrvInst.exe"
37 Delete /REBOOTOK "$INSTDIR\DIFxAPI.dll"
38
39 Delete /REBOOTOK "$INSTDIR\VBoxVideo.inf"
40!ifdef VBOX_SIGN_ADDITIONS
41 Delete /REBOOTOK "$INSTDIR\VBoxVideo.cat"
42!endif
43
44!if $%VBOX_WITH_LICENSE_INSTALL_RTF% == "1"
45 Delete /REBOOTOK "$INSTDIR\${LICENSE_FILE_RTF}"
46!endif
47
48 Delete /REBOOTOK "$INSTDIR\VBoxGINA.dll"
49
50 ; Delete registry keys
51 DeleteRegKey /ifempty HKLM "${PRODUCT_INSTALL_KEY}"
52 DeleteRegKey /ifempty HKLM "${VENDOR_ROOT_KEY}"
53
54 ; Delete desktop & start menu entries
55 Delete "$DESKTOP\${PRODUCT_NAME}.lnk" ; Obsolete. We don't install a desktop link any more.
56 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
57 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Website.url"
58 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" ; Old name. Changed to Website.url in r153663.
59 RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
60
61 ; Delete Guest Additions directory (only if completely empty)
62 RMDir /REBOOTOK "$INSTDIR"
63
64 ; Delete vendor installation directory (only if completely empty)
65!if $%KBUILD_TARGET_ARCH% == "x86" ; 32-bit
66 RMDir /REBOOTOK "$PROGRAMFILES32\$%VBOX_VENDOR_SHORT%"
67!else ; 64-bit
68 RMDir /REBOOTOK "$PROGRAMFILES64\$%VBOX_VENDOR_SHORT%"
69!endif
70
71 ; Remove registry entries
72 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
73
74FunctionEnd
75!macroend
76;!insertmacro UninstallCommon "" - only .un version used
77!insertmacro UninstallCommon "un."
78
79!macro Uninstall un
80Function ${un}Uninstall
81
82 ${LogVerbose} "Uninstalling system files ..."
83!ifdef _DEBUG
84 ${LogVerbose} "Detected OS version: Windows $g_strWinVersion"
85 ${LogVerbose} "System Directory: $g_strSystemDir"
86!endif
87
88 ; Which OS are we using?
89!if $%KBUILD_TARGET_ARCH% == "x86" ; 32-bit
90 StrCmp $g_strWinVersion "NT4" nt4 ; Windows NT 4.0
91!endif
92 StrCmp $g_strWinVersion "2000" w2k ; Windows 2000
93 StrCmp $g_strWinVersion "XP" w2k ; Windows XP
94 StrCmp $g_strWinVersion "2003" w2k ; Windows 2003 Server
95 StrCmp $g_strWinVersion "Vista" vista ; Windows Vista
96 StrCmp $g_strWinVersion "7" vista ; Windows 7
97 StrCmp $g_strWinVersion "8" vista ; Windows 8
98 StrCmp $g_strWinVersion "8_1" vista ; Windows 8.1 / Windows Server 2012 R2
99 StrCmp $g_strWinVersion "10" vista ; Windows 10
100
101 ${If} $g_bForceInstall == "true"
102 Goto vista ; Assume newer OS than we know of ...
103 ${EndIf}
104
105 Goto notsupported
106
107!if $%KBUILD_TARGET_ARCH% == "x86" ; 32-bit
108nt4:
109
110 Call ${un}NT4_Uninstall
111 goto common
112!endif
113
114w2k:
115
116 Call ${un}W2K_Uninstall
117 goto common
118
119vista:
120
121 Call ${un}W2K_Uninstall
122 Call ${un}Vista_Uninstall
123 goto common
124
125notsupported:
126
127 MessageBox MB_ICONSTOP $(VBOX_PLATFORM_UNSUPPORTED) /SD IDOK
128 Goto exit
129
130common:
131
132exit:
133
134FunctionEnd
135!macroend
136!ifndef UNINSTALLER_ONLY
137 !insertmacro Uninstall ""
138!endif
139!insertmacro Uninstall "un."
140
141;;
142; The last step of the uninstallation where we remove all files from the
143; install directory and such.
144;
145!macro UninstallInstDir un
146Function ${un}UninstallInstDir
147
148 ${LogVerbose} "Uninstalling directory ..."
149!ifdef _DEBUG
150 ${LogVerbose} "Detected OS version: Windows $g_strWinVersion"
151 ${LogVerbose} "System Directory: $g_strSystemDir"
152!endif
153
154 ; Which OS are we using?
155!if $%KBUILD_TARGET_ARCH% == "x86" ; 32-bit
156 StrCmp $g_strWinVersion "NT4" nt4 ; Windows NT 4.0
157!endif
158 StrCmp $g_strWinVersion "2000" w2k ; Windows 2000
159 StrCmp $g_strWinVersion "XP" w2k ; Windows XP
160 StrCmp $g_strWinVersion "2003" w2k ; Windows 2003 Server
161 StrCmp $g_strWinVersion "Vista" vista ; Windows Vista
162 StrCmp $g_strWinVersion "7" vista ; Windows 7
163 StrCmp $g_strWinVersion "8" vista ; Windows 8
164 StrCmp $g_strWinVersion "8_1" vista ; Windows 8.1 / Windows Server 2012 R2
165 StrCmp $g_strWinVersion "10" vista ; Windows 10
166
167 ${If} $g_bForceInstall == "true"
168 Goto vista ; Assume newer OS than we know of ...
169 ${EndIf}
170
171 MessageBox MB_ICONSTOP $(VBOX_PLATFORM_UNSUPPORTED) /SD IDOK
172 Goto exit
173
174!if $%KBUILD_TARGET_ARCH% == "x86" ; 32-bit
175nt4:
176
177 Call ${un}NT4_UninstallInstDir
178 goto common
179!endif
180
181w2k:
182
183 Call ${un}W2K_UninstallInstDir
184 goto common
185
186vista:
187
188 Call ${un}W2K_UninstallInstDir
189 Call ${un}Vista_UninstallInstDir
190 goto common
191
192common:
193
194 Call ${un}Common_CleanupObsoleteFiles
195
196 ; This will attempt remove the install dir, so must be last.
197 Call ${un}UninstallCommon
198
199exit:
200
201FunctionEnd
202!macroend
203;!insertmacro UninstallInstDir "" - only un. version is used.
204!insertmacro UninstallInstDir "un."
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use