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

📄 uninstall.rul

📁 PGP—Pretty Good Privacy
💻 RUL
📖 第 1 页 / 共 3 页
字号:

    ProgDefGroupType(COMMON);
    DeleteProgramFolder ("P G P");
    DeleteFolderIcon(FOLDER_STARTUP,"PGPtray");
	DeleteFolderIcon(FOLDER_STARTUP,"PGPnet Tray Startup");
	
    //Outlook Express Uninstall
    RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
    RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PGPOEPlugin");

	UninstallPGPdisk(Installdir);
	
	RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
	if (RegDBKeyExist ("SOFTWARE\\Network Associates\\PGP\\PGPnet") >= 0) then
		UninstallPGPnet(Installdir);
	endif;
	
    VarRestore (SRCTARGETDIR);

    RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
    RegDBDeleteKey ("Software\\Network Associates\\PGP");
    RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP");
	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP");
	//We must now reboot, set Reboot key to 2 so SEA will relaunch
    if (bPGPnetReboot) then
    	Disable (DIALOGCACHE);
    	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP\\PGPkeys");
    	bInstallAborted = TRUE;
    	CleanUpInstall();
    	szKey = "SOFTWARE\\Network Associates\\PGP";
        RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
        RegDBSetKeyValueEx ( szKey, "Reboot" , REGDB_NUMBER , "2" , -1 );    	
        SdShowMsg ( @RebootRestart, TRUE );
    	Delay (4);
        exit;
    endif;
end;

///////////////////////////////////////////////////////////////////////////////
//
// Function: UninstallPGPdisk
//
//  Purpose: Uninstalls PGPDisk
//
//
///////////////////////////////////////////////////////////////////////////////
function UninstallPGPdisk(InstallDirectory)

begin
	VarSave (SRCTARGETDIR);
	
	UseDLL (SUPPORTDIR ^ "PGPdskIH.dll");

    UnmountAllPGPdisks();
	KillPGPdiskResident();
	PGPdiskCleanup();
	
	TARGETDIR = InstallDirectory;
	DeleteFile ("pgpdiskresident.exe");
	DeleteFile ("pgpdisk.exe");
	DeleteFile ("pgpdisk.hlp");
	DeleteFile ("pgpdisk.cnt");
	DeleteFile ("pgpdisk.pdf");
	DeleteFile ("readme.txt");
	DeleteFile ("license.txt");
    TARGETDIR = WINSYSDIR;
    DeleteFile("PGPdskse.dll");

	//Deleting registry Entries.
	RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
	RegDBDeleteKey ("Enum\\Root\\PGPdisk");
	RegDBDeleteKey ("System\\CurrentControlSet\\Services\\Class\\PGPdisk");
	
	//Deleting PGPdisk registry Entries.
	RegDBSetDefaultRoot (HKEY_CLASSES_ROOT);
	RegDBDeleteKey (".pgd");
	RegDBDeleteKey ("PGPdisk Volume File");
	RegDBDeleteKey ("CLSID\\{f8b14440-3785-11d1-b363-5c6f08c10000}");
	RegDBDeleteKey ("PGPdisk Volume File\\shellex\\ContextMenuHandlers\\PGPdisk Shell Extension");
	RegDBDeleteKey ("Drive\\shellex\\ContextMenuHandlers\\PGPdisk Shell Extension");
	RegDBDeleteValue ("Drive\\shellex\\ContextMenuHandlers", "");
	RegDBDeleteKey ("PGPdisk Volume");
	RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
	RegDBDeleteKey ("Enum\\Root\\PGPdisk");
	RegDBDeleteKey ("System\\CurrentControlSet\\Services\\Class\\PGPdisk");	
	RegDBDeleteValue ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
					  "{f8b14440-3785-11d1-b363-5c6f08c10000}" );
	RegDBDeleteKey ("Enum\\ESDI\\PGP_____PGPDISK_________0");
	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGPdisk");
	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGPdiskAlpha");
	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGPdisk Beta");
	RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGPdiskBeta");
	RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PGPdiskDeinstKey");
	RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\PGPdisk.exe");
	RegDBDeleteKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\PGPdiskResident.exe");
	RegDBDeleteKey ("SOFTWARE\\Classes\\PGPdisk Volume");
	RegDBSetDefaultRoot (HKEY_CURRENT_USER);
	RegDBDeleteKey ("Software\\Network Associates\\PGPdisk");
	RegDBDeleteKey ("Software\\Network Associates\\PGPdiskAlpha");
	RegDBDeleteKey ("Software\\Network Associates\\PGPdiskBeta");
	RegDBDeleteKey ("Software\\PGP\\PGPdisk");
	RegDBDeleteKey ("Software\\PGP\\PGPdiskAlpha");
	RegDBDeleteKey ("Software\\PGP\\PGPdiskBeta");

	if (bIsWindowsNT4) then
		RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
		RegDBDeleteKey ("System\\CurrentControlSet\\Services\\PGPdisk");
		RegDBDeleteKey ("System\\CurrentControlSet\\Services\\EventLog\\System\\PGPdisk");
		TARGETDIR = WINSYSDIR ^ "Drivers";
		DeleteFile ("pgpdisk.sys");
	else
		TARGETDIR = WINSYSDIR ^ "Iosubsys";
		DeleteFile ("pgpdisk.pdr");
	endif;

	UnUseDLL (SUPPORTDIR ^ "PGPdskIH.dll");
	VarRestore (SRCTARGETDIR);
end;

///////////////////////////////////////////////////////////////////////////////
//
// Function: UninstallPGPnet
//
//  Purpose: Uninstalls PGPnet
//
//
///////////////////////////////////////////////////////////////////////////////
function UninstallPGPnet(InstallDirectory)
STRING szKey, szName, svAdapterNum, svAdapterName;
NUMBER nvType, nvSize;

begin
	VarSave (SRCTARGETDIR);
	//PGPnet
	ChangeDirectory(InstallDirectory);
	LaunchAppAndWait (InstallDirectory ^ "SetAdapter.exe","uninstall", WAIT);
		
	LongPathToShortPath (InstallDirectory);
	TARGETDIR = InstallDirectory;
	//Delete program files
	DeleteFile ("IKEservice.exe");
	DeleteFile ("PGP_SDK.dll");
	DeleteFile ("PGPcl.dll");
	DeleteFile ("PGPnet.sys");
	DeleteFile ("PGPnet.exe");
	DeleteFile ("PGPsdkUI.dll");
	DeleteFile ("PGPNetCL.dll");
	DeleteFile ("PGPnetTray.exe");
	DeleteFile ("PGPsdkNL.dll");
	DeleteFile ("Readme.txt");
	DeleteFile ("PGPnet.hlp");
	DeleteFile ("PGPnet.cnt");
	DeleteFile ("PGPRebind.inf");
	DeleteFile ("PGPnet.dat");
	DeleteDir  (InstallDirectory, ONLYDIR);
		
	if!(bIsWindowsNT4) then
		TARGETDIR = WINSYSDIR;
    	DeleteFile ("PGPnet.vxd");
    endif;

	if(bIsWindowsNT4) then	
    	TARGETDIR = WINSYSDIR ^ "drivers";
    	DeleteFile ("PGPnet.sys");
       	RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
    	szKey = "SOFTWARE\\Network Associates\\PGP\\PGPnet";
    	szName = "AdapterNum";

    	//cleanup
    	if (RegDBGetKeyValueEx (szKey , szName , nvType , svAdapterNum , nvSize)=0) then
    		szKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\" ^ svAdapterNum;
    		RegDBGetKeyValueEx (szKey , szName , nvType , svAdapterName , nvSize);
    		if ((svAdapterName = "PGPMacMP") || (svAdapterName = "NDISWANPGPMacMP")) then
    			RegDBDeleteKey (szKey);
    		endif;
    	endif;
    endif;
    	
    //most of this will not be needed, its more of a "backup"
	//Delete the reg. entries
	RegDBSetDefaultRoot (HKEY_CURRENT_USER);
	RegDBDeleteKey ("Software\\Network Associates\\PGP\\PGPnet");
		
	if(bIsWindowsNT4) then
		RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
		RegDBDeleteKey ("SOFTWARE\\Network Associates\\PGP\\PGPnet");
		RegDBDeleteKey ("SOFTWARE\\Network Associates\\PgpMacMP");
		RegDBDeleteKey ("SOFTWARE\\Network Associates\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SOFTWARE\\Network Associates\\PgpMac");
		//These are copies that windows makes
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\System\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\System\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\System\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\System\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\System\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\System\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\System\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\System\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\System\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\System\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\System\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\System\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\System\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\System\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\System\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\NDISWANPgpMacMP"+svAdapterNum);
		//This is the original
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\System\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\System\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\System\\NDISWANPgpMacMP");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\System\\PgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\System\\NDISWANPgpMacMP"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PgpMac");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PgpMacMP");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PgpMac"+svAdapterNum);
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PgpMacMP"+svAdapterNum);
		//These are PGPnetIKE service entries that the -u does not remove
		//These are copies that windows makes
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\EventLog\\Application\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\ControlSet001\\Services\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\EventLog\\Application\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\ControlSet002\\Services\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\EventLog\\Application\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\ControlSet003\\Services\\PGPnetIKE");
		//This is the original
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\PGPnetIKE");
		RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PGPnetIKE");
		
		//Perform final Bind Review
		ChangeDirectory(InstallDirectory);
		LaunchAppAndWait (InstallDirectory ^ "SetAdapter.exe","review", WAIT);
		Delay(2);
	endif;
	TARGETDIR = InstallDirectory;
	DeleteFile ("Oemsetup.inf");
	DeleteFile ("SetAdapter.exe");
	DeleteFile ("*.dbg");
	DeleteFile ("PGPnetLog.dat");
	DeleteFile ("randseed.rnd");
	RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
	RegDBDeleteKey("SOFTWARE\\Network Associates\\PGP\\PGPnet");
	VarRestore (SRCTARGETDIR);
end;

///////////////////////////////////////////////////////////////////////////////
//
//  Function: DeleteSharedFile
//
//  Purpose:  This function will check if a library is shared before deleteing
//
//
///////////////////////////////////////////////////////////////////////////////
function DeleteSharedFile (szDeleteFilePath, szDeleteFile)
    STRING  szDelKey, svString, svValue;
    NUMBER  nvVar, nvType, nvSize, nSize, numDelays;

begin
    RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
    szDelKey	= "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SharedDLLs";
	numDelays = 0;
    RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
    if (RegDBGetKeyValueEx(szDelKey,  szDeleteFilePath ^ szDeleteFile, nvType, svValue, nvSize) < 0 ) then
	    //this is not a shared .dll so delete
	    TARGETDIR  = szDeleteFilePath;
	    SRCDIR     = szDeleteFilePath;
	    DeleteFile (szDeleteFile);
DeleteingNonSharedFile:
		if(DeleteFile (szDeleteFile)<0) then
			Delay(1);
			numDelays ++;
			if(numDelays <= 7)then
				goto DeleteingNonSharedFile;
			endif;
		endif;
    else
	    //this is a shared file
	    StrToNum (nvVar, svValue);
	    nvVar = nvVar - 1;
	    if (nvVar < 1) then
				//Delete the file and decrement the count
				RegDBDeleteValue (szDelKey, szDeleteFilePath ^ szDeleteFile);
				TARGETDIR  = szDeleteFilePath;
				SRCDIR     = szDeleteFilePath;
				//NT
				//If we are removing memlock we need to remove service entry
				if (szDeleteFile = "PGPmemlock.sys") then
					RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
					RegDBDeleteKey ("SYSTEM\\CurrentControlSet\\Services\\PGPmemlock");
				endif;
DeleteingFile:
				if(DeleteFile (szDeleteFile)<0) then
					Delay(1);
					numDelays ++;
					if(numDelays <= 7)then
						goto DeleteingFile;
					endif;
				endif;				
	    endif;
	    //write the new number of apps shareing the library
	    if (nvVar > 0) then
		    NumToStr(svString, nvVar);
		    RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
		    RegDBSetKeyValueEx(szDelKey,  szDeleteFilePath ^ szDeleteFile, REGDB_NUMBER, svString, nSize);
		endif;
    endif;
end;

///////////////////////////////////////////////////////////////////////////////
//
// Function: CleanSharedFile
//
//  Purpose: Deletes old, unneeded file share counts.
//
//
///////////////////////////////////////////////////////////////////////////////
function CleanSharedFile(szDeleteFilePath, szDeleteFile)
	STRING szDelKey, svValue;
	NUMBER nvType, nvSize;

begin
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
szDelKey	= "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SharedDLLs";
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
if (RegDBGetKeyValueEx
	(szDelKey,  szDeleteFilePath ^ szDeleteFile, nvType, svValue, nvSize) < 0 ) then
else
	//Delete the shared file ref
	RegDBDeleteValue (szDelKey ,szDeleteFilePath ^ szDeleteFile);
endif;
end;

































































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -