gpt4 book ai didi

python - 不能用pythonw调用qwinsta

转载 作者:行者123 更新时间:2023-12-03 12:47:17 25 4
gpt4 key购买 nike

我正在尝试构建一个使用 wx 模块作为图形部分的应用程序。我的操作系统是windows 10,python版本是2.7。

此应用程序应检查是否有人远程连接到计算机,如果是则更改按钮的颜色。为了检查是否有人连接到计算机,我解析了 qwinsta 调用的输出。

I have to specify this: to run this application i use pythonw.

代码块如下:

def isLocked():
process =subprocess.Popen('qwinsta',stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
output,error = process.communicate()
print output
output2 = output[0:len(output)]

output2= output2.split('\n')

问题是,我进行的子进程调用返回错误:

'qwinsta' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"""

我想我找到了问题,但我不知道如何解决:

如果我用 python 调用这个子进程调用,它就可以正常工作。如果我使用 pythonw 它会失败。在我看来,pythonw 使用 syswow64/cmd.exe,而 python 使用 system32/cmd.exe

我检查了 pythonpythonw 上的 os.environ 变量,COMSPEC 变量是相同的。

最佳答案

所以我找到了解决该问题的方法。我仍然认为问题在于 pythonw 使用 windows/syswow64/cmd.exe 。此 cmd 似乎无法执行 Syste32 文件夹中的 qwinsta.exe 可执行文件。

*但是这个 qwista.exe 也可以在 windows/WinSxS 文件夹中找到,syswow64/cmd.exe 可以访问该文件夹并能够运行该可执行文件。

解决方法是,我为子进程 Popen 提供了 windows/WinSxS/amd64_microsoft-windows-t..commandlinetoolsmqq_31bf3856ad364e35... qwinsta.exe

process =subprocess.Popen('',stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False,executable='C:\Windows\WinSxS\amd64...\qwinsta.exe')

关于python - 不能用pythonw调用qwinsta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50929915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com