📄 uninstall.rul
字号:
// $Id: uninstall.rul,v 1.45.4.3 1999/06/16 05:48:37 philipn Exp $
//____________________________________________________________________________
// Copyright (C) 1998 Network Associates Inc. and affiliated companies.
// All rights reserved.
//
// Author: Philip Nathan
//____________________________________________________________________________
///////////////////////////////////////////////////////////////////////////////
//
// Function: Uninstall5X()
//
// Purpose: Uninstalls PGP5X
//
//
///////////////////////////////////////////////////////////////////////////////
function Uninstall5X(szUninstallVersion)
STRING Installdir, szName, szFileName, OEinstall, szTemp;
STRING szResultBuffer, szVerBuffera[1536], szData, szEudora_Path;
STRING svValue, szKey;
NUMBER nHandle, nSize, nvSize, nvType, nType;
BOOL bVerInfo, bUpgraded, bVerValue;
POINTER ptr1, ptr2;
LONG lSize, lData;
begin
VarSave (SRCTARGETDIR);
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
//Retrieve Outlook Express and Eudora's installed path
szKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths";
nType = REGDB_STRING;
if (RegDBGetKeyValueEx (szKey ^ "MSIMN.EXE", "Path", nType, OEinstall, nvSize) < 0) then
OEinstall = "";
endif;
if (RegDBGetKeyValueEx (szKey ^ "EUDORA.EXE", "Path", nType, szEudora_Path, nvSize) < 0) then
szEudora_Path = "";
else
szEudora_Path = szEudora_Path ^ "PLUGINS";
endif;
if (szUninstallVersion = "PGPFiveZero") then
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
szKey = "Software\\PGP\\PGP50\\PGPKeys";
szName = "ExePath";
elseif (szUninstallVersion = "PGPFiveFive") then
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
szKey = "Software\\PGP\\PGP55\\PGPKeys";
szName = "ExePath";
elseif (szUninstallVersion = "FiveFive") then
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
szKey = "Software\\Network Associates\\PGP55\\PGPKeys";
szName = "ExePath";
endif;
RegDBGetKeyValueEx (szKey, szName, nvType, svValue, nvSize);
ParsePath(Installdir, svValue, PATH);
//DELETE .DLL'S FROM WINDOWS SYSTEM DIRECTORY
TARGETDIR = WINSYSDIR;
DeleteFile ("PGPsdk.dll");
CleanSharedFile(WINSYSDIR,"PGPsdkKS.dll");
DeleteFile ("PGPsdkKS.dll");
CleanSharedFile(WINSYSDIR,"PGPsdkKeyServer.dll");
DeleteFile ("PGPsdkKeyServer.dll");
CleanSharedFile(WINSYSDIR,"PGP55km.dll");
DeleteFile ("PGP55km.dll");
CleanSharedFile(WINSYSDIR,"PGP55cd.dll");
DeleteFile ("PGP55cd.dll");
CleanSharedFile(WINSYSDIR,"PGP55rd.dll");
DeleteFile ("PGP55rd.dll");
CleanSharedFile(WINSYSDIR,"PGP55sc.dll");
DeleteFile ("PGP55sc.dll");
CleanSharedFile(WINSYSDIR,"PGP55mn.dll");
DeleteFile ("PGP55mn.dll");
CleanSharedFile(WINSYSDIR,"PGPxch.dll");
DeleteFile ("PGPxch.dll");
CleanSharedFile(WINSYSDIR,"PGP55oe.dll");
DeleteFile ("PGP55oe.dll");
CleanSharedFile(WINSYSDIR,"PGPsdk.dll");
DeleteFile ("PGPsdk.dll");
CleanSharedFile(WINSYSDIR,"PGPsdkPrefs");
DeleteFile ("PGPsdkPrefs");
DeleteFile ("PGPsdk.prf");
DeleteFile ("PGPMacBinaryMappings.txt");
//DELETE FILES FROM THE PGP 5.5 INSTALL DIRECTORY
TARGETDIR = Installdir;
DeleteFile ("keygen.avi");
DeleteFile ("license.txt");
DeleteFile ("Pgp55.cnt");
DeleteFile ("pgp55.hlp");
DeleteFile ("Pgp50.cnt");
DeleteFile ("pgp50.hlp");
DeleteFile ("Pgp55.gid");
DeleteFile ("pgp50.gid");
DeleteFile ("PGPadmin.exe");
DeleteFile ("PGPkeys.exe");
DeleteFile ("PGPlog.exe");
DeleteFile ("PGPtools.exe");
DeleteFile ("PGPtray.exe");
DeleteFile ("Quickstart.doc");
DeleteFile ("Readme.txt");
DeleteFile ("PGPadmin.prf");
DeleteFile ("PGPclient.prf");
DeleteFile ("Eudora.url");
DeleteFile ("Adobe.url");
DeleteFile ("randseed.bin");
DeleteFile ("PGP55win.pdf");
DeleteFile ("*.pdf");
DeleteFile ("*.prf");
DeleteFile ("*.isu");
DeleteFile ("uninstall.exe");
if (Installdir != "") then
DeleteDir(Installdir ^ "ClientInstaller", ALLCONTENTS);
DeleteDir(Installdir ^ "TEMP", ALLCONTENTS);
DeleteDir(Installdir ^ "Signatures", ALLCONTENTS);
endif;
//DELETE THE EUDORA PLUGIN
TARGETDIR = szEudora_Path;
DeleteFile ("pgpplugin.dll");
//DELETE REGISTRY ENTRIES
//HKEY_CURRENT_USER
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
RegDBDeleteKey ("Software\\Network Associates\\PGP55");
RegDBDeleteKey ("Software\\PGP\\PGP55");
RegDBDeleteKey ("Software\\PGP\\PGP");
//HKEY_CLASSES_ROOT
RegDBSetDefaultRoot(HKEY_CLASSES_ROOT);
RegDBDeleteKey (".aexpk");
RegDBDeleteKey (".asc");
RegDBDeleteKey (".bexpk");
RegDBDeleteKey (".pgp");
RegDBDeleteKey (".pkr");
RegDBDeleteKey (".prvkr");
RegDBDeleteKey (".aexpk");
RegDBDeleteKey (".pubkr");
RegDBDeleteKey (".sig");
RegDBDeleteKey (".skr");
RegDBDeleteKey ("CLSID\\{969223c0-26aa-11d0-90ee-444553540000}");
RegDBDeleteKey ("PGP Armored Encrypted File");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Armored Extracted Public Key");
RegDBDeleteKey ("PGP Detached Signature File");
RegDBDeleteKey ("PGP Encrypted File");
RegDBDeleteKey ("PGP Private Keyring");
RegDBDeleteKey ("PGP Public Keyring");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
//HKEY_LOCAL_MACHINE
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBDeleteKey (".aexpk");
RegDBDeleteKey (".asc");
RegDBDeleteKey (".bexpk");
RegDBDeleteKey (".pgp");
RegDBDeleteKey (".pkr");
RegDBDeleteKey (".prvkr");
RegDBDeleteKey (".aexpk");
RegDBDeleteKey (".pubkr");
RegDBDeleteKey (".sig");
RegDBDeleteKey (".skr");
RegDBDeleteKey ("CLSID\\{969223c0-26aa-11d0-90ee-444553540000}");
RegDBDeleteKey ("PGP Armored Encrypted File");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Armored Extracted Public Key");
RegDBDeleteKey ("PGP Detached Signature File");
RegDBDeleteKey ("PGP Encrypted File");
RegDBDeleteKey ("PGP Private Keyring");
RegDBDeleteKey ("PGP Public Keyring");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("PGP Binary Extracted Public Key");
RegDBDeleteKey ("SOFTWARE\\Microsoft\\Exchange\\Client\\Extensions\\PGP Plugin");
RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PGP55DeinstKey");
RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PGP50DeinstKey");
RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP55");
RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP50");
RegDBDeleteValue ("SOFTWARE\\Microsoft\\Exchange\\Client\\Extensions", "PGP Plugin");
//HKEY_USERS
RegDBSetDefaultRoot(HKEY_USERS);
RegDBDeleteKey ("S-1-5-21-1998468922-181747292-2076119496-1000\\Software\\PGP");
ProgDefGroupType(PERSONAL);
DeleteProgramFolder ("Pretty Good Privacy");
DeleteFolderIcon(FOLDER_STARTUP,"PGPtray");
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
LongPathToShortPath (Installdir);
//Outlook Express Uninstall
SRCDIR = OEinstall;
TARGETDIR = OEinstall;
//See if the user has installed OE plugin and then upgraded OE
szFileName = OEinstall ^ "msimn.exe";
UseDLL( "Version.dll" );
lSize = GetFileVersionInfoSizeA( szFileName, nHandle );
NumToStr( szTemp, lSize );
bVerInfo = GetFileVersionInfoA( szFileName, nHandle, lSize, szVerBuffera);
ptr1 = &szResultBuffer;
ptr2 = ptr1;
bVerValue = VerQueryValueA( szVerBuffera,"\\StringFileInfo\\040904b0\\CompanyName", ptr2, nSize);
if (bVerValue = 0 ) then
bVerValue = VerQueryValueA( szVerBuffera,"\\StringFileInfo\\040904E4\\CompanyName", ptr2, nSize);
endif;
// pszResultBuffer is a pointer to a pointer which is the starting point
// for the company name. How do you actually get the string ?
StructGetP( ptr2, "MYTYPE_PSZ", "szString", lData, szData );
UnUseDLL( "Version.dll" );
if (szData = "Microsoft Corporation") then
//the user install the plugin then updated outlook
//so we DO want to use this newer file
bUpgraded = TRUE;
endif;
TARGETDIR = OEinstall;
if (bUpgraded = FALSE) then
DeleteFile("msimn.exe");
RenameFile ("PGPmsimn.exe", "msimn.exe");
else
DeleteFile("PGPmsimn.exe");
endif;
TARGETDIR = WINSYSDIR;
CleanSharedFile(WINSYSDIR,"PGP55oe.dll");
DeleteFile("PGP55oe.dll");
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP55\\OE");
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PGPOEPlugin");
UninstallPGPdisk(Installdir);
VarRestore (SRCTARGETDIR);
end;
///////////////////////////////////////////////////////////////////////////////
//
// Function: UNINSTALL 6.X
//
// Purpose: Uninstalls PGP6X
//
//
///////////////////////////////////////////////////////////////////////////////
function Uninstall6X ()
STRING szLocalDB, szName, svValue, szKey, svReturnString;
STRING szVerBufferb[1536], szResultBuffer, OEinstall, Installdir;
STRING szData, szTemp, szFileName;
NUMBER nvType, nvSize, nSize, nHandle;
LONG lData, lSize;
BOOL DeleteSharedDLLS, bVerValue, bUpgraded, bVerInfo;
POINTER ptr1, ptr2;
begin
VarSave (SRCTARGETDIR);
//See if and components that use the SDK were installed
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
szLocalDB = "Software\\Network Associates";
szName = "DelSharedFiles";
DeleteSharedDLLS = FALSE;
if (RegDBGetKeyValueEx (szLocalDB ^ "PGP60", szName, nvType, svValue, nvSize) = 0 ) then
DeleteSharedDLLS = TRUE;
endif;
//DELETE .DLL'S FROM WINDOWS SYSTEM DIRECTORY
TARGETDIR = WINSYSDIR;
if (DeleteSharedDLLS = TRUE) then
DeleteSharedFile (WINSYSDIR, "PGP_sdk.dll");
DeleteSharedFile (WINSYSDIR, "PGPsdkNL.dll");
DeleteSharedFile (WINSYSDIR, "PGPsdkUI.dll");
endif;
DeleteSharedFile (WINSYSDIR, "pgp60cl.dll");
DeleteSharedFile (WINSYSDIR, "pgp60mn.dll");
DeleteSharedFile (WINSYSDIR, "pgp60rd.dll");
DeleteSharedFile (WINSYSDIR, "pgp60sc.dll");
DeleteSharedFile (WINSYSDIR, "pgpExch.dll");
DeleteSharedFile (WINSYSDIR, "pgp60oe.dll");
DeleteSharedFile (WINSYSDIR, "pgp60hk.dll");
DeleteFile ("randseed.bin");
DeleteFile ("PGP60.hlp");
DeleteFile ("PGP60.gid");
TARGETDIR = WINSYSDIR ^ "drivers";
DeleteSharedFile (WINSYSDIR ^ "drivers", "PGPmemlock.sys");
TARGETDIR = WINDIR;
DeleteFile ("PGP_sdk.prf");
DeleteFile ("PGPsdk.prf");
DeleteFile ("PGPMacBinaryMappings.txt");
//Short filename due to 95 bug
DeleteSharedFile (WINDIR, "PGPMEM~1.vxd");
DeleteSharedFile (WINDIR, "PGPMEMLOCK.vxd");
//GET THE PGP 6.0 INSTALLATION DIRECTORY
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
szKey = "Software\\Network Associates\\PGP60\\PGPKeys";
szName = "ExePath";
RegDBGetKeyValueEx (szKey, szName, nvType, svValue, nvSize);
ParsePath(svReturnString, svValue, PATH);
//Outlook Express install location
szKey = "Software\\Network Associates\\PGP60\\OE";
szName = "OutlookExpress";
RegDBGetKeyValueEx (szKey, szName, nvType, svValue, nvSize);
OEinstall = svValue;
//DELETE FILES FROM THE PGP 6.0 INSTALL DIRECTORY
TARGETDIR = svReturnString;
Installdir = svReturnString;
DeleteFile ("keygen.avi");
DeleteFile ("Pgp60.cnt");
DeleteFile ("pgp60.hlp");
DeleteFile ("pgp60.gid");
DeleteFile ("PGPadmin.exe");
DeleteFile ("PGPkeys.exe");
DeleteFile ("PGPlog.exe");
DeleteFile ("PGPtools.exe");
DeleteFile ("PGPtray.exe");
DeleteFile ("Quickstart.doc");
DeleteFile ("PGP_Admin.prf");
DeleteFile ("PGP_Client.prf");
DeleteFile ("PGPadmin.prf");
DeleteFile ("PGPclient.prf");
DeleteFile ("Eudora.url");
DeleteFile ("Adobe.url");
DeleteFile ("randseed.bin");
DeleteFile ("randseed.rnd");
DeleteFile ("*.pdf");
DeleteFile ("*.prf");
DeleteFile ("*.isu");
DeleteFile ("uninstall.exe");
TARGETDIR = Installdir + "\\Documentation";
DeleteFile ("license.txt");
DeleteFile ("Readme.txt");
DeleteFile ("6.0.2 Change History.txt");
DeleteFile ("PGP55win.pdf");
DeleteFile ("PGPWinUsersGuide.pdf");
DeleteFile ("whatsnew.txt");
DeleteFile ("whatsnew.doc");
TARGETDIR = Installdir + "\\PGPFone";
DeleteFile ("PGPfone.pdf");
DeleteFile ("PGPfone.exe");
DeleteFile ("readme.txt");
TARGETDIR = Installdir + "\\Sample Keys";
DeleteFile ("SampleKeys.asc");
DeleteFile ("WhatIsThis.txt");
// Clean up old ClientInstaller only if this installer is an ADMIN installer
TARGETDIR = Installdir ^ "ClientInstaller\\Disk1";
DeleteFile ("_inst32i.ex_");
DeleteFile ("_isdel.exe");
DeleteFile ("_setup.dll");
DeleteFile ("_setup.lib");
DeleteFile ("Data.1");
DeleteFile ("Disk1.id");
DeleteFile ("License.txt");
DeleteFile ("Setup.bmp");
DeleteFile ("Setup.exe");
DeleteFile ("Setup.ini");
DeleteFile ("Setup.ins");
DeleteFile ("Setup.pkg");
DeleteFile ("Uninst.exe");
DeleteDir (Installdir ^ "ClientInstaller\\Disk1", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk2";
DeleteFile ("Data.2");
DeleteFile ("Disk2.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk2", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk3";
DeleteFile ("Data.3");
DeleteFile ("Disk3.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk3", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk4";
DeleteFile ("Data.4");
DeleteFile ("Disk4.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk4", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk5";
DeleteFile ("Data.5");
DeleteFile ("Disk5.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk5", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk6";
DeleteFile ("Data.6");
DeleteFile ("Disk6.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk6", ONLYDIR);
TARGETDIR = Installdir ^ "ClientInstaller\\Disk7";
DeleteFile ("Data.7");
DeleteFile ("Disk7.id");
DeleteDir (Installdir ^ "ClientInstaller\\Disk7", ONLYDIR);
DeleteDir (Installdir ^ "ClientInstaller", ONLYDIR);
if (svReturnString != "") then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -