我正在用Python编写一个scritp,在windows终端中调用Ghostscript。在
我需要获取windows中安装程序的路径(例如GhostScript)
是否有任何环境变量或任何其他方法(系统注册表)来获取路径?在
解决方案(来自@abarner答案:)
import winreg
program_to_found = 'Software\\GPL Ghostscript'
try:
h_key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, program_to_found)
try:
gs_version = winreg.EnumKey(h_key, 0)
h_subkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, program_to_found+'\\'+gs_version)
gs_dll = (winreg.EnumValue(h_subkey,0))[1]
print("Ghostscript %s is installed in: %s" % (gs_version, gs_dll.replace('gsdll32.dll', '')))
except OSError:
print("Ghostscript insn't correctly installed!! ")
except PermissionError:
print("Ghostsript not found!! ")
这适用于winXP和win7 32位系统。在
你的要求一般来说是不可能的。Windows找不到任意安装的程序。但对于任何一款包括Ghostscript在内的特定应用程序来说,这都是可能的。在
由.msi机制安装的程序或与“添加/删除程序”中的“卸载”机制交互的其他程序,您可以找到相应的条目。但是有自己的自定义安装程序和卸载程序的程序不必这样做。在
可以通过这些关联找到添加“文件类型关联”的程序(例如,如果双击一个
.ps
文件窗口就知道如何打开它)。在当然,许多程序都会安装自己的任意注册表项,您可以随时搜索这些注册表项。在
{看一下,你能解释一下。我认为简短的说法是:
GS.EXE
所在的目录添加到您的%PATH%
中,但是在您的例子中,显然没有。在GS.EXE
的路径注册为至少.ps
个文件的文件类型关联,除非其他人已经拥有它。在GSDLL32.DLL
的路径可以在GS_DLL
环境变量中找到,也可以在HKCU\Software\GPL Ghostscript\#.##
或{GS.EXE
与卸载程序位于同一目录中。在因为几乎所有这些都是可选的,所以归根结底,你要花多少精力去尝试所有不同的可能性。在
要从Python访问这些注册表项,请参阅stdlib中的^{} 模块。在
相关问题 更多 >
编程相关推荐