您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

防止未从现有终端调用控制台应用程序时关闭?

防止未从现有终端调用控制台应用程序时关闭?

首先,试图使您摆脱聪明的黑客。设计一个单独的快捷方式来从Explorer运行是非常合适的,该快捷方式与要在命令行中使用的脚本所做的功能稍有不同(例如,保持控制台处于打开状态)。正如Alex所指出的那样,在nix上这不是问题,正确的做法始终是干净地退出,否则您的用户会抱怨。

如果仍然需要解决方法,可以使用以下代码来检测何时需要阻止控制台关闭,这是相当干净的。需要Windows 2000或更高版本,此功能包含逻辑:

def owns_console():
    wnd = GetConsoleWindow()
    if wnd is None:
        return False
    return GetCurrentProcessId() == GetWindowThreadProcessId(wnd)

基本上,它获取拥有Python正在使用的控制台的进程以及我们的进程的PID。如果它们相同,那么当我们退出控制台时,控制台将消失,因此需要保持打开状态。如果它们不同,或者没有连接任何控制台,则Python应该正常退出

其他 2022/1/1 18:36:30 有543人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶