4 : ShellExtension.dll is a so called 'Shell Extension'
5 : allowing user to start WinMerge from explorer's context
6 : menu to compare selected files/directories.
7 : However this dll file must be registered for
8 : Windows before it works.
10 : ShellExtension.dll can be unregistered with command:
13 IF "%OS%" == "" Set DLLPATH=%0\..\ShellExtension.dll
14 IF "%PROCESSOR_ARCHITECTURE%" == "x86" Set DLLPATH=%~dp0%ShellExtensionU.dll
15 IF "%PROCESSOR_ARCHITECTURE%" == "AMD64" Set DLLPATH=%~dp0%ShellExtensionX64.dll
16 IF "%PROCESSOR_ARCHITECTURE%" == "IA64" Set DLLPATH=%~dp0%ShellExtensionX64.dll
17 IF "%PROCESSOR_ARCHITECTURE%" == "ARM64" Set DLLPATH=%~dp0%ShellExtensionARM64.dll
19 IF "%1" == "/u" Goto Uninstall
20 IF "%1" == "/U" Goto Uninstall
22 Echo Registering ShellExtension.dll...
23 IF "%OS%" == "" %WINDIR%\System\RegSvr32 "%DLLPATH%"
24 IF "%OS%" == "" Goto End
25 Call :Execute regsvr32 "%DLLPATH%"
26 IF EXIST "%~dp0\WinMerge32BitPluginProxy.exe" Call :Execute "%~dp0\WinMerge32BitPluginProxy.exe" /RegServer
30 Echo UnRegistering ShellExtension.dll...
31 IF "%OS%" == "" %WINDIR%\System\RegSvr32 /u "%DLLPATH%"
32 IF "%OS%" == "" Goto End
33 Call :Execute regsvr32 /u "%DLLPATH%"
34 IF EXIST "%~dp0\WinMerge32BitPluginProxy.exe" Call :Execute "%~dp0\WinMerge32BitPluginProxy.exe" /UnregServer
38 Ver | %WINDIR%\System32\Find "Version 5." > NUL
40 rem Windows 2000, XP, Sever 2003
43 rem Windows Vista, Server 200x, Server 201x, Windows 8, Windows 10
44 Echo args="": For Each a in WScript.Arguments: If InStr^(a, " "^) ^> 0 Then args = args ^& """" ^& a ^& """ " Else args = args ^& a ^& " " End If: Next: CreateObject^("Shell.Application"^).ShellExecute "%~1", args, "", "runas" > "%TEMP%\Elevated.vbs"
45 Wscript //nologo "%TEMP%\Elevated.vbs" %2 %3
46 Del "%TEMP%\Elevated.vbs" 2> NUL