home *** CD-ROM | disk | FTP | other *** search
/ Borland Programmer's Resource / Borland_Programmers_Resource_CD_1995.iso / ntcode / ntperlb / uninstal.cmd < prev   
Encoding:
Text File  |  1995-05-19  |  1.3 KB  |  52 lines

  1. @rem = '-*- Perl -*-';
  2. @rem = '
  3. @echo off
  4. perl %0.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9
  5. goto endofperl
  6. ';
  7.  
  8. require "registry.pl";
  9.  
  10. #
  11. # This perl script removes all traces of Perl from the
  12. # NT Registry.
  13. #
  14.  
  15. &RegOpenKeyEx($HKEY_LOCAL_MACHINE,
  16.        "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", 
  17.           0, $KEY_ALL_ACCESS, $key) 
  18.     || die "Can't open Session Manager Environment key: $!\n";
  19.  
  20. &RegQueryValueEx($key, "Path", 0, $type, $pathstring)
  21.     || die "Can't get Path string: $!\n";
  22.  
  23. $newpath = join(';', grep (!/perl/, split(';', $pathstring))) . ";";
  24.  
  25. &RegSetValueEx($key, "Path", 0, $type, $newpath)
  26.     || die "Can't set Path variable: $!\n";
  27.  
  28. &RegCloseKey($key);
  29.  
  30. &DelAllKeys ($HKEY_LOCAL_MACHINE,  "SOFTWARE\\Intergraph\\Perl");
  31.  
  32. sub DelAllKeys {
  33.     local($key, $keystring) = @_;
  34.     local($idx, $name, $newkey);
  35.  
  36.     &RegOpenKeyEx($key, $keystring, 0, $KEY_ALL_ACCESS, $newkey)
  37.     || die "Can't open $key\\$keystring: $!\n";
  38.  
  39.     $idx = 0;
  40.     while(&RegEnumKey($newkey, $idx++, $name)) {
  41.     &DelAllKeys($newkey, $name);
  42. #    &RegDeleteKey($newkey, $name)
  43. #        || die "Can't delete key $name from $keystring: $!\n";
  44.     }
  45.     &RegCloseKey($newkey);
  46.     &RegDeleteKey($key, $keystring) 
  47.     || die "Can't delete key $keystring: $!\n";
  48. }
  49.  
  50. __END__
  51. :endofperl
  52.