質問の権限のリストを追加しないpyInstallerの解決正しくとき、単一のファイル、(UAC、uac_admin、マニフェスト、asInvoker、パイソン、requireAdministrator)

3日間win10の互換性テストを行って、ほとんどの時間は、それは、認証カードを取得しました。

はるかに少ないナンセンス、直接の解決策を見つけたいが、スキップ

まず、単純にUACの下で、Vistaのウィンドウが厳格な著作権管理以降再び増加、UAC(アカウント制御)、プログラムのニーズは、ユーザーがポップを選択できるようになりますリソースの制約にアクセスする際、アクセス敏感な資源にプログラムを制限することです。今のシステムは、あなたがプログラムは、Windowsフォルダ、その後に、標準権限を呼び出すをクリックしてください2つの権限の管理者と標準アクセス、分割され、Program Filesフォルダやレジストリの変更の重要な部分がエラーになり、アクセスもすべきことができます。あなたは、ドライバやプログラムをインストールする必要がある場合、管理者として右クリックして実行]を使用することができ、それはほとんど妨げられずにシステムをプログラムすることができるようになります、これは確かに非常に安全ですが、経験が良くない、プログラマはそのプログラムを確実にするために右の開封後は、ユーザーを思い出させる必要があります通常は、その権限のマニフェスト、XMLファイル形式で、それは必要な権限が、必要な管理者権限場合、システムはユーザーが選択できるように、警告をポップアップ表示されます前に、プログラムをロードする方法をシステムに伝えることができます。ツールセット対マイクロソフトの権限のリストがうまく実装されて、結局、何かの資本家ですが、Pythonで問題があります。

権限の次の側面の公式説明

https://docs.microsoft.com/en-us/windows/win32/dxtecharts/user-account-control-for-game-developers

-------------------------------------------------- ----------------------------------------------

実際には、権限のpyInstallerの機能のリストがありますが、している通常は複数のファイルを生成するときに使用すると、単一のexeファイルが正しくリストを埋め込むことができないビルドする際に、バグがありました。

あなたが得ることができるので、より通常よりも、リスト上のファイルのパーミッションのでexeファイルの隣に、exeファイルのファイル名と同じサフィックスがマニフェストシステムです。

単一のファイルpyInstallerのは、最初のリストでもある一時ディレクトリに失われた資源を抽出し、システムが最初の許可リストを取得する必要があり、パーミッションが正しく手順を実行する方法を理解する必要があり、そうでない場合は、すべての標準的な権限が実行すると、途中で変更することはできません。

このバグは、ほぼ4年間存在している、最近まで7月の最新バージョン3.5が19歳で、~~それは明確なバグ修正の友人と判断 

しかし、修復しませんでした(ささやき:さまざまなバージョンがPYとpyInstallerのは、常に彼らはミスを犯したことを感じるためにあなたは麻の卵の修復を言っていない、私は、ドキュメントを読むために長いものになりません)

次pyInstallerの奥付

https://pyinstaller.readthedocs.io/en/stable/CHANGES.html#id1

-------------------------------------------------- --------------------------------------------

Dianluandaofeng後、私は問題を解決することを決定し、海やページの実験では1日には、コードを変更する予定です

最初pycharmの下でどのようにデバッグ追加コマンドラインパラメータに、

あなたが実行することを選択し、メニューバー>編集設定...> PYを実行>パラメータが十分に追加します

注:PY、実行中下さいデバッグが見つからない場合。

 

私は偉大な神の外国の参照元を変更した場合

https://stackoverflow.com/questions/13964909/setting-uac-to-requireadministrator-using-pyinstaller-onefile-option-and-manifes

実際に、私はほとんど元の上に移動します

注:これは、罰金の測定ではなく、他の機能は、コードは影響は明らかではないpyInstallerのだろうということです、強くpyInstallerののQuguanネットワークの次の3.5バージョンではその実行を改訂しますが、インストールしないことをお勧めします。
実装:直接抽出した後のパラメータが続くpyinstaller.py CMDにドラッグ。

api.pyのpyInstallerの内を検索

logger.info(" EXE%sの追加はアーカイブ"、self.name)

その上層に追加

       輸入SYS
            manifest_filename_ = STR(sys.argvの[1])に分割(' の.py ')[0] + " .exe.manifest " 
            ならos.path.exists(manifest_filename_):
                 プリント " オーバーライドデフォルトマニフェスト" 
                tmpnm = tempfile.mktemp ()
                shutil.copy2(EXE、tmpnm)
                os.chmod(tmpnm、 0755 

                winmanifest.UpdateManifestResourcesFromXMLFile(tmpnm、manifest_filename_、名前 = [1 ]、
                                                               言語 = [1033 ])
                exeファイル = tmpnm
                trash.append(tmpnm)
            私はルあまりにも困難だ
            ファイルの終わりに戻ってちょうどAPPENDにフォール
使用法:一緒にマニフェストファイルとPYファイル、pyInstallerのPYファイルのパスを行う-F --uac-adminに
maifestとその内容を命名:最初であるpyInstallerの梱包マルチPYファイル、行うことpyInstallerのPYをフォルダ内の--uac-adminのファイル・パスは、* .exe.maifest取得することができ、pyがディレクトリにコピー
して、単一のパッケージファイルを実行します。
あなたはwin10エンタープライズおよびUltimate win7のテストでは、管理者権限を取得することができますが、ポップ警告しませんでした。なぜ?これは、UACの設定に関連することができます。確か?誰が気に。あなたは持つことができます
以下は、テストコードです
輸入OS
admin_dir = os.path.join(os.environ.get(' SYSTEMROOT '' C:\\窓')、' TEMP ' 
os.listdir(admin_dir)
sys.stdin.readline()

それをパッケージ化し、管理者権限を与えられていない1つのファイルを、実行します。

注:ユーザーの最初の着陸に成功し、管理者権限を得るためには、管理者です。

-------------------------------------------------- -----------------------

一般的にはソース改革は、のためにpyInstallerの深い理解、我々は、改正を歓迎します

添付:pyinstaller3.5.rar修正版をアップロードする完全な

 

 
 

おすすめ

転載: www.cnblogs.com/moshuixiong/p/12041527.html