python以管理员中断wxpython运行

时间:2017-12-06 11:05:31

标签: python wxpython runas

我正在开发一个使用管理员权限的脚本我使用下面的代码来获取它,但是当我将它添加到我的脚本时,突然不会显示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()

1 个答案:

答案 0 :(得分:1)

如果我正确阅读此代码,如果用户未在命令行上传入asadmin,则看起来就是退出脚本。因此,当您运行没有参数的脚本或传入错误的字符串时,您的if语句将运行。当它运行时,它会在最后调用sys.exit(0),这会导致脚本在那里结束。

因此,您永远无法访问代码的wxPython部分。