PageRenderTime 42ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/python/Lib/site-packages/win32/lib/regcheck.py

https://github.com/hsablonniere/play
Python | 125 lines | 119 code | 4 blank | 2 comment | 2 complexity | aa1a936a394a1c49c2badab6d80bae40 MD5 | raw file
  1. # This module is very old and useless in this day and age! It will be
  2. # removed in a few years (ie, 2009 or so...)
  3. import warnings
  4. warnings.warn("The regcheck module has been pending deprecation since build 210",
  5. category=PendingDeprecationWarning)
  6. import win32con
  7. import regutil
  8. import win32api
  9. import os
  10. import sys
  11. def CheckRegisteredExe(exename):
  12. try:
  13. os.stat(win32api.RegQueryValue(regutil.GetRootKey() , regutil.GetAppPathsKey() + "\\" + exename))
  14. # except SystemError:
  15. except (os.error,win32api.error):
  16. print "Registration of %s - Not registered correctly" % exename
  17. def CheckPathString(pathString):
  18. import string
  19. for path in string.split(pathString, ";"):
  20. if not os.path.isdir(path):
  21. return "'%s' is not a valid directory!" % path
  22. return None
  23. def CheckPythonPaths(verbose):
  24. if verbose: print "Python Paths:"
  25. # Check the core path
  26. if verbose: print "\tCore Path:",
  27. try:
  28. appPath = win32api.RegQueryValue(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\PythonPath")
  29. except win32api.error, (code, fn, desc):
  30. print "** does not exist - ", desc
  31. problem = CheckPathString(appPath)
  32. if problem:
  33. print problem
  34. else:
  35. if verbose: print appPath
  36. key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\PythonPath", 0, win32con.KEY_READ)
  37. try:
  38. keyNo = 0
  39. while 1:
  40. try:
  41. appName = win32api.RegEnumKey(key, keyNo)
  42. appPath = win32api.RegQueryValue(key, appName)
  43. if verbose: print "\t"+appName+":",
  44. if appPath:
  45. problem = CheckPathString(appPath)
  46. if problem:
  47. print problem
  48. else:
  49. if verbose: print appPath
  50. else:
  51. if verbose: print "(empty)"
  52. keyNo = keyNo + 1
  53. except win32api.error:
  54. break
  55. finally:
  56. win32api.RegCloseKey(key)
  57. def CheckHelpFiles(verbose):
  58. if verbose: print "Help Files:"
  59. try:
  60. key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\Help", 0, win32con.KEY_READ)
  61. except win32api.error, (code, fn, details):
  62. import winerror
  63. if code!=winerror.ERROR_FILE_NOT_FOUND:
  64. raise win32api.error, (code, fn, details)
  65. return
  66. try:
  67. keyNo = 0
  68. while 1:
  69. try:
  70. helpDesc = win32api.RegEnumKey(key, keyNo)
  71. helpFile = win32api.RegQueryValue(key, helpDesc)
  72. if verbose: print "\t"+helpDesc+":",
  73. # query the os section.
  74. try:
  75. os.stat(helpFile )
  76. if verbose: print helpFile
  77. except os.error:
  78. print "** Help file %s does not exist" % helpFile
  79. keyNo = keyNo + 1
  80. except win32api.error, (code, fn, desc):
  81. import winerror
  82. if code!=winerror.ERROR_NO_MORE_ITEMS:
  83. raise win32api.error, (code, fn, desc)
  84. break
  85. finally:
  86. win32api.RegCloseKey(key)
  87. def CheckRegisteredModules(verbose):
  88. # Check out all registered modules.
  89. k=regutil.BuildDefaultPythonKey() + "\\Modules"
  90. try:
  91. keyhandle = win32api.RegOpenKey(regutil.GetRootKey(), k)
  92. print "WARNING: 'Modules' registry entry is deprectated and evil!"
  93. except win32api.error, (code, fn, details):
  94. import winerror
  95. if code!=winerror.ERROR_FILE_NOT_FOUND:
  96. raise win32api.error, (code, fn, details)
  97. return
  98. def CheckRegistry(verbose=0):
  99. # check the registered modules
  100. if verbose and os.environ.has_key('pythonpath'):
  101. print "Warning - PythonPath in environment - please check it!"
  102. # Check out all paths on sys.path
  103. CheckPythonPaths(verbose)
  104. CheckHelpFiles(verbose)
  105. CheckRegisteredModules(verbose)
  106. CheckRegisteredExe("Python.exe")
  107. if __name__=='__main__':
  108. if len(sys.argv)>1 and sys.argv[1]=='-q':
  109. verbose = 0
  110. else:
  111. verbose = 1
  112. CheckRegistry(verbose)