123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- # This module is very old and useless in this day and age! It will be
- # removed in a few years (ie, 2009 or so...)
- import warnings
- warnings.warn("The regcheck module has been pending deprecation since build 210",
- category=PendingDeprecationWarning)
- import win32con
- import regutil
- import win32api
- import os
- import sys
- def CheckRegisteredExe(exename):
- try:
- os.stat(win32api.RegQueryValue(regutil.GetRootKey() , regutil.GetAppPathsKey() + "\\" + exename))
- # except SystemError:
- except (os.error,win32api.error):
- print("Registration of %s - Not registered correctly" % exename)
- def CheckPathString(pathString):
- for path in pathString.split(";"):
- if not os.path.isdir(path):
- return "'%s' is not a valid directory!" % path
- return None
- def CheckPythonPaths(verbose):
- if verbose: print("Python Paths:")
- # Check the core path
- if verbose: print("\tCore Path:", end=' ')
- try:
- appPath = win32api.RegQueryValue(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\PythonPath")
- except win32api.error as exc:
- print("** does not exist - ", exc.strerror)
- problem = CheckPathString(appPath)
- if problem:
- print(problem)
- else:
- if verbose: print(appPath)
-
- key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\PythonPath", 0, win32con.KEY_READ)
- try:
- keyNo = 0
- while 1:
- try:
- appName = win32api.RegEnumKey(key, keyNo)
- appPath = win32api.RegQueryValue(key, appName)
- if verbose: print("\t"+appName+":", end=' ')
- if appPath:
- problem = CheckPathString(appPath)
- if problem:
- print(problem)
- else:
- if verbose: print(appPath)
- else:
- if verbose: print("(empty)")
- keyNo = keyNo + 1
- except win32api.error:
- break
- finally:
- win32api.RegCloseKey(key)
- def CheckHelpFiles(verbose):
- if verbose: print("Help Files:")
- try:
- key = win32api.RegOpenKey(regutil.GetRootKey(), regutil.BuildDefaultPythonKey() + "\\Help", 0, win32con.KEY_READ)
- except win32api.error as exc:
- import winerror
- if exc.winerror!=winerror.ERROR_FILE_NOT_FOUND:
- raise
- return
-
- try:
- keyNo = 0
- while 1:
- try:
- helpDesc = win32api.RegEnumKey(key, keyNo)
- helpFile = win32api.RegQueryValue(key, helpDesc)
- if verbose: print("\t"+helpDesc+":", end=' ')
- # query the os section.
- try:
- os.stat(helpFile )
- if verbose: print(helpFile)
- except os.error:
- print("** Help file %s does not exist" % helpFile)
- keyNo = keyNo + 1
- except win32api.error as exc:
- import winerror
- if exc.winerror!=winerror.ERROR_NO_MORE_ITEMS:
- raise
- break
- finally:
- win32api.RegCloseKey(key)
- def CheckRegisteredModules(verbose):
- # Check out all registered modules.
- k=regutil.BuildDefaultPythonKey() + "\\Modules"
- try:
- keyhandle = win32api.RegOpenKey(regutil.GetRootKey(), k)
- print("WARNING: 'Modules' registry entry is deprectated and evil!")
- except win32api.error as exc:
- import winerror
- if exc.winerror!=winerror.ERROR_FILE_NOT_FOUND:
- raise
- return
- def CheckRegistry(verbose=0):
- # check the registered modules
- if verbose and 'pythonpath' in os.environ:
- print("Warning - PythonPath in environment - please check it!")
- # Check out all paths on sys.path
-
- CheckPythonPaths(verbose)
- CheckHelpFiles(verbose)
- CheckRegisteredModules(verbose)
- CheckRegisteredExe("Python.exe")
- if __name__=='__main__':
- if len(sys.argv)>1 and sys.argv[1]=='-q':
- verbose = 0
- else:
- verbose = 1
- CheckRegistry(verbose)
|