123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- # 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 os
- import sys
-
- import regutil
- import win32api
- import win32con
-
-
- 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)
|