⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uninstall.rul

📁 pgp soucecode pgp soucecode
💻 RUL
📖 第 1 页 / 共 3 页
字号:
// $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 + -