質問

私はシステムを持っています。UACで通常のように設定し、Delphi環境でKa.exeという名前のプロジェクトをコンパイルし、InstallShieldプロジェクトを作成します。

セットアップとすべてがOKを完了します!しかし、プログラムを開始するたびに、標高が必要であり、その理由は何もありません。

InstallShieldが私にマインドゲームをプレイしていないことを確認するために、新しい.exeをコンパイルし、ネットワーク化されたコンピューターに手動でコピーしました。

アイコンは同じように見え、このUACシールドも上にあります。

私のプロジェクトには、ネットワーク共有名と話し、SQLデータベースと話しているかもしれないいくつかの機能があります...

では、なぜ私のアプリは実行するために標高が必要なのでしょうか?

役に立ちましたか?

解決

まず、Delphiを使用できる場合は、埋め込まれたマニフェストを追加します asInvoker. 。できない場合は、外部のものを作成し、EXEと同じフォルダーに入れます。シールドが消えた場合、素晴らしい。

そうでない場合、物事はよりゆるくなります。アプリを実行すると、その後Windowsがやって来て、「それは機能していなかったかもしれません。推奨される設定で再試行したいですか?」と言うこともあります。 OKと言うと、残りの時間の間、そのアプリを高めるグループポリシーが保存されています。 EXEの名前を変更すると、グループポリシーの効果が停止するように見えます。あなたはそれを試すことができます。

他のヒント

Filenameに「セットアップ」または「インストール」文字列がない場合でも、WindowsはVersionInfoリソースにそのようなテキストが含まれている場合、標高が必要だと考える場合があります。

versionInfoをチェックして、疑わしい文字列をきれいにしてみてください。Windowsはさらに多くのテキスト(英語以外のテキストなど)をチェックすると思います。

Windows Vista以降、UACが有効になったとき、管理者はWindows XP以下で見たように完全な権利を持っていません。管理タスクのいずれかを実行しようとするプログラム(システム保護された場所の要求など、%プログラムファイル%、Windowsディレクトリ、hkey_local_machineなどの保護された場所にデータを書き込む場合、プログラムは同意UIを提供するために標高を要求する必要があります管理者による承認が必要な表示のプロンプトが表示されます。

詳細情報が得られます ここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top