带有python可执行文件的用户访问控制对话框

时间:2014-07-19 06:41:55

标签: uac python-3.3

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

  

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

我正在运行Windows 7,64bit,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对话框需要做些什么?

1 个答案:

答案 0 :(得分:0)

您需要为您的应用程序创建一个“组装清单”。它必须声明 requestedExecutionLevel=asInvoker,然后要么

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