📄 uninstall.rul
字号:
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 + -