gpt4 book ai didi

python - Ansicon 不能从 python 安装,只能从 cmd 安装

转载 作者:太空宇宙 更新时间:2023-11-03 18:01:18 31 4
gpt4 key购买 nike

我正在尝试在 Windows 8.1 上安装 ansicon。我提取了文件并达到了我需要调用 ansicon -i 的级别。当我在 cmd 中输入此内容并运行 python 脚本时效果很好,但是当我通过 os.system('ansicon -i') 从 python 调用 t 时这不起作用,而且似乎对 cmd 没有任何影响。

为什么os.system('ansicon -i')不起作用,我可以在 python 中使用什么替代方法?

最佳答案

首先,真正起作用的并不是 -i 标志。 -i 仅告诉它将自身添加到 AutoRun。 -i 暗示的 -p 标志才是真正起作用的:-p 告诉它向父进程注入(inject)一个 DLL,并且问题就在这里:当你使用 os.system 时,你会生成一个 shell,然后它运行你给它的命令。但是,然后你让 Python 运行 cmd 并运行 ansicon,并且 ansicon 将注入(inject)到 cmd 中,然后 cmd 完成工作后将退出。

不要使用os.system,而是使用subprocess模块,例如:

subprocess.check_call(['ansicon', '-p'])

subprocess 模块(与 os.system 不同)将直接执行命令,中间没有 shell(除非您传递 shell=True >)。然后,Python 将生成 ansicon,并且 ansicon 将根据需要注入(inject)到 Python 中。

也就是说,Python 可能只加载 DLL 本身,而不是让 ansicon 将自身注入(inject)到 Python 中,从而避免一些困难:

import sys
import math
import ctypes

bitness = 1 << round(math.log2(round(math.log2(sys.maxsize + 1))))
ctypes.WinDLL('ANSI{}.DLL'.format(bitness))

关于python - Ansicon 不能从 python 安装,只能从 cmd 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27641931/

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