希望有人能够帮助我解决这个非常奇怪和恼人的问题。
背景:我有一个带有许多功能的tkinter gui。其中之一是在指定的远程PC上查看注册表项(使用reg查询)并将显示输出到下面的文本小部件。它设计为运行和重新运行,从顶层(hklm)开始,每个输出都有行号,您可以选择下一个打开的reg键。以下是此功能的代码。
void traverse(struct entry * & listPt)
第一级工作正常 - 输入hklm(或hku)将显示前6个顶级注册表。输入行号应该显示下一个级别,但由于某种原因,它只有在您选择最后一行时才有效!您可以继续选择最后一行并浏览整个树,但是如果您输入任何其他行号,则声称它找不到reg键。
你可以看到一些' print'代码中的行 - 这些用于调试以尝试查看问题所在。它将显示正确选择的行和它将要运行的完整命令(可以将其复制到cmd并运行正常),因此我无法理解为什么当子进程尝试运行命令时它失败(除非你已经选择了prev输出的最后一行!)
我希望这是有道理的 - 这不是一个容易描述的问题。你应该能够通过自己运行看到它。
P.S。抱歉这个问题的标题 - 我无法想出更好的东西......