【问题标题】:python run as administrator interrupt wxpythonpython 以管理员身份运行中断 wxpython
【发布时间】:2017-12-06 11:05:30
【问题描述】:

我正在开发一个使用管理员权限的脚本,我使用下面的代码来获取它,但是当我将它添加到我的脚本时,突然 wxpython 不会显示。

我应该怎么做才能修复它?

    # Enable Adminstrator Privelaged
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
    script = os.path.abspath(sys.argv[0])
    params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
    try:
        shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
    except Exception as e:
        if e[-1]=="The operation was canceled by the user.":
            print "נא לאפשר הרשאות מנהלן לתוכנה"
        else:
            print "שגיאה בהפעלת המנהלן, פרטי השגיאה:\n"+str(e)
    sys.exit(0)


app = wx.App(False)
x=MainGUI(None,app)
app.MainLoop()

【问题讨论】:

    标签: python wxpython runas


    【解决方案1】:

    如果我正确阅读了这段代码,那么如果用户没有在命令行中传入asadmin,您似乎就退出了脚本。因此,当您在没有参数或传入错误字符串的情况下运行脚本时,您的 if 语句就会运行。当它运行时,它会在最后调用sys.exit(0),这会导致脚本在那里结束。

    因此,您永远不会到达代码的 wxPython 部分。

    【讨论】:

    • 是的,但它应该调用 sys.exit(0) 因为它只是使用管理员权限再次运行脚本
    • 您应该打印出params 变量。看看是否会打印两次。
    猜你喜欢
    • 2012-11-22
    • 2016-09-20
    • 2010-11-26
    • 2012-05-28
    • 2011-03-24
    • 2021-08-10
    • 1970-01-01
    • 2022-01-08
    • 2018-01-20
    相关资源
    最近更新 更多