【问题标题】:User access control dialog box with python executable带有 python 可执行文件的用户访问控制对话框
【发布时间】:2014-09-10 07:57:42
【问题描述】:

我有多个 python 脚本,我使用 py2exe 将它们转换为可执行文件。当我运行它们时,我得到一个 UAC 对话框,说

“您是否希望来自未知发布者的以下程序能够对您的计算机进行更改。”

我正在运行 Windows 7、64 位、python 3.3。

为了确定不是我的代码造成的,我从网上复制了以下简单脚本并创建了一个 exe。还是一样的问题。

import ctypes
from ctypes import wintypes

def get_appdata_directory():
    CSIDL_APPDATA = 0x001a

    dll = ctypes.windll.shell32
    app_data_directory = ctypes.create_unicode_buffer(wintypes.MAX_PATH)

    found = dll.SHGetFolderPathW(0, CSIDL_APPDATA, 0, 0, app_data_directory)

    return app_data_directory.value

appdata = get_appdata_directory()

脚本仅查找 appdata 目录的路径。

为了避免UAC对话框需要做什么?

【问题讨论】:

    标签: uac python-3.3


    【解决方案1】:

    您需要为您的应用程序创建一个“Assembly Manifest”。它必须声明requestedExecutionLevel=asInvoker,然后

    • 将其作为资源嵌入 (RT_MANIFEST)
    • 或将其与您的 exe 放在同一文件夹中,并命名为 MyApp.exe.manifest

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多