home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / audio-video / fireant / FireAntSetup_RC1.msi / _5DD22B4F19113B30369E52193993D947 / _6382AA9BB0504E7590F8A28CC7BFE2AB < prev    next >
Text File  |  2005-12-17  |  3KB  |  111 lines

  1.  
  2. Option Explicit
  3. 'having this on *all* the time is *always* a bad idea!!!
  4. On Error Resume Next
  5.  
  6. ' Registry key hives.
  7. Const HKEY_CLASSES_ROOT = &H80000000
  8. Const HKEY_CURRENT_USER = &H80000001
  9. Const HKEY_LOCAL_MACHINE = &H80000002
  10. Const HKEY_USERS = &H80000003
  11. Const HKEY_CURRENT_CONFIG = &H80000005
  12. Const HKEY_DYN_DATA = &H80000006
  13.  
  14. Private Const NOERROR = 0
  15. Private Const MAX_PATH = 260
  16.  
  17. ' CSIDL constants.
  18. Private Const CSIDL_DESKTOP = &H0
  19. Private Const CSIDL_INTERNET = &H1
  20. Private Const CSIDL_PROGRAMS = &H2
  21. Private Const CSIDL_CONTROLS = &H3
  22. Private Const CSIDL_PRINTERS = &H4
  23. Private Const CSIDL_PERSONAL = &H5
  24. Private Const CSIDL_FAVORITES = &H6
  25. Private Const CSIDL_STARTUP = &H7
  26. Private Const CSIDL_RECENT = &H8
  27. Private Const CSIDL_SENDTO = &H9
  28. Private Const CSIDL_BITBUCKET = &HA
  29. Private Const CSIDL_STARTMENU = &HB
  30. Private Const CSIDL_DESKTOPDIRECTORY = &H10
  31. Private Const CSIDL_DRIVES = &H11
  32. Private Const CSIDL_NETWORK = &H12
  33. Private Const CSIDL_NETHOOD = &H13
  34. Private Const CSIDL_FONTS = &H14
  35. Private Const CSIDL_TEMPLATES = &H15
  36. Private Const CSIDL_COMMON_STARTMENU = &H16
  37. Private Const CSIDL_COMMON_PROGRAMS = &H17
  38. Private Const CSIDL_COMMON_STARTUP = &H18
  39. Private Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19
  40. Private Const CSIDL_APPDATA = &H1A
  41. Private Const CSIDL_LOCAL_APPDATA = &H1C
  42. Private Const CSIDL_PRINTHOOD = &H1B
  43. Private Const CSIDL_ALTSTARTUP = &H1D
  44. Private Const CSIDL_COMMON_ALTSTARTUP = &H1E
  45. Private Const CSIDL_COMMON_FAVORITES = &H1F
  46. Private Const CSIDL_INTERNET_CACHE = &H20
  47. Private Const CSIDL_COOKIES = &H21
  48. Private Const CSIDL_HISTORY = &H22
  49.  
  50. '********************************************************************************
  51.  
  52. CleanANTFolders
  53. CleanANTRegistry
  54.  
  55. 'wscript.echo "Done!"
  56. Sub CleanANTFolders
  57.     Dim appDataPath 
  58.     Dim localAppDataPath
  59.     Dim fso
  60.     
  61.     'wscript.echo "Creating FileSystemObject"
  62.     Set fso = CreateObject("Scripting.FileSystemObject")
  63.     
  64.     localAppDataPath = GetSpecialFolderLocation(CSIDL_LOCAL_APPDATA) & "\FireANT"
  65.     'wscript.echo "Deleting " & localAppDataPath
  66.     fso.DeleteFile localAppDataPath & "\FireANT.fdb"
  67.     fso.DeleteFile localAppDataPath & "\FireANT.log"
  68.     fso.DeleteFolder localAppDataPath, True
  69.         
  70.     appDataPath = GetSpecialFolderLocation(CSIDL_APPDATA) & "\FireANT"
  71.     fso.DeleteFolder appDataPath, True    
  72. End Sub
  73.  
  74. Sub CleanANTRegistry
  75.     'Delete registry settings for ANT.
  76.     DeleteRegistryKey HKEY_CURRENT_USER, "Software\Mycelia Networks"
  77. End Sub
  78.  
  79. ' Gets a Windows "special" folder location.
  80. Function GetSpecialFolderLocation(csidl)
  81.     Dim shellApp
  82.     Dim folderName
  83.     
  84.     Set shellApp = CreateObject("Shell.Application")
  85.     
  86.     folderName = shellApp.Namespace(csidl).Self.Path
  87.     GetSpecialFolderLocation = folderName
  88. End Function
  89.  
  90. '********************************************************************************
  91. ' Recursively delete registry keys.
  92. Sub DeleteRegistryKey(RegRoot, SPath)
  93.     Dim sKeys
  94.     Dim SubKeyCount
  95.     Dim objRegistry
  96.     Dim lRC
  97.     Dim lRC2
  98.     Dim Key
  99.     Set objRegistry = GetObject("winmgmts:root\default:StdRegProv")
  100.  
  101.     'wscript.echo "ENUMERATING KEY: " & sPath & "\" & Key
  102.     lRC = objRegistry.EnumKey(RegRoot, sPath, sKeys)
  103.  
  104.     If IsArray(sKeys) Then
  105.         For Each Key in sKeys
  106.             DeleteRegistryKey RegRoot, SPath & "\" & Key
  107.         Next
  108.     End If
  109.     lRC2 = objRegistry.DeleteKey(RegRoot, sPath)
  110. End Sub
  111.