2

私はシステムを持っており、UACを使用して通常どおりにセットアップし、delphi環境で、ka.exeという名前のプロジェクトをコンパイルし、そのためのinstallshieldプロジェクトを作成します。

セットアップとすべてが正常に完了します!しかし、プログラムを開始するときはいつでも、昇格が必要であり、その理由はわかりません。

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

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

私のプロジェクトには、ネットワーク共有名と通信したり、SQLデータベースと通信したりする可能性のあるいくつかの関数が含まれています...

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

4

3 に答える 3

5

まず、Delphiを使用できる場合は、埋め込みマニフェストを。で追加しasInvokerます。できない場合は、外部のものを作成し、exeファイルと同じフォルダに配置します。盾が消えたら、素晴らしい。

そうでなければ、物事はより暗くなります。アプリを実行すると、後でWindowsが表示され、「それは機能しなかった可能性があります。推奨設定で再試行しますか?」と表示されることがあります。「OK」と言うと、そのアプリを残りの時間昇格させるグループポリシーが保存されます。exeの名前を変更すると、グループポリシーの効果が停止するようです。あなたはそれを試すことができます。

于 2010-10-06T14:39:42.410 に答える
3

ファイル名に「SETUP」または「INSTALL」文字列が含まれていない場合でも、VersionInfoリソースにそのようなテキストが含まれていると、Windowsは昇格が必要であると見なす場合があります。

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

于 2010-10-07T18:40:51.000 に答える
0

Windows Vista以降では、UACが有効になっている場合でも、Windows XP以下で見られたように、管理者は完全な権限を持っていません。プログラムが管理タスクの1つを実行しようとしている場合(たとえば、システムで保護された場所での要求、%ProgramFiles%、Windowsディレクトリ、HKEY_LOCAL_MACHINEなどの保護された場所へのデータの書き込み)、プログラムは同意UIを取得するために昇格を要求する必要があります管理者による承認が必要なプロンプトが表示されます。

ここでいくつかの詳細情報を取得します

于 2010-10-05T12:35:45.797 に答える