gpt4 book ai didi

python - 如何停止使用 python 执行程序?

转载 作者:行者123 更新时间:2023-11-28 23:00:31 26 4
gpt4 key购买 nike

我使用了一个程序(在 Windows 上),我不会透露其名称,它可以从命令行打开而无需通过任何身份验证。我正在尝试创建一些安全措施以防止其他人以这种方式访问​​它。

我计划用批处理文件替换这个程序的内置二进制文件,第一行指向我自己的身份验证系统(在 python 中实现,用 py2exe 编译为 .exe),第二行指向命令打开程序。

我最初的计划是让我的脚本 (auth.py) 在身份验证失败时停止批处理文件执行第二行:

if not authenticated:
print('Authentication failed')
sys.exit(1)
else:
print('Successfully authenticated!')

我曾指望 sys.exit(1) 来执行此操作,并且在完成脚本开发之前我没有费心测试它。现在我意识到 sys.exit 只是退出 python 进程。

我要么需要一种从 python 脚本停止批处理的方法,要么需要一种方法让批处理从 auth.py 中检测退出代码(如果失败则为 1,如果通过则为 0)并仅在退出代码是 0 从那里。

如果有人能给我任何建议或帮助,我将不胜感激。谢谢!

最佳答案

使用subprocess 在身份验证成功时调用程序。因此,您的 Python 脚本将启动程序,而不是批处理文件。

if not authenticated:
print('Authentication failed')
sys.exit(1)
else:
print('Successfully authenticated!')
proc = subprocess.Popen([program])

请注意,如果用户有权从 python 或批处理脚本中启动程序,则没有什么可以阻止他们直接访问它。这将防止任何人访问该程序;除了极端的非技术性。

关于python - 如何停止使用 python 执行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907163/

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