2010-09-30 67 views
3

啓動我的可執行文件時,Windows會提示提升,如果不應該的話。如何確定應用程序提示擡高的原因

我怎麼弄出來爲什麼 Windows在啓動時提示我提升我的可執行文件?

注:

  • 沒有清單資源(要求asAdministrator,或以其他方式)
  • 沒有清單文件
  • 的了兼容性選項卡(對於所有用戶和只是我)沒有選中「以管理員身份運行」

我如何確定爲什麼我的應用程序提示提升?

+0

是否有任何需要管理訪問的文件I/O操作? (在Windows/Program Files文件夾中),註冊表? – Ruel 2010-09-30 15:16:51

+1

你的代碼試圖做的事情永遠不會導致海拔。 – 2010-09-30 18:46:47

回答

3

在沒有清單的情況下,通常的原因是名稱啓發式(例如,您的文件稱爲setup.exe)和組策略(在「此程序可能沒有按預期運行」對話框後,您可能意外設置了此策略)

要防止它,只需使用asInvoker應用清單(嵌入或外部)。那麼你將不再關心這些啓發式,你不會提升。

我知道我評論過上面的內容,但我需要重複一遍:你的代碼試圖做的事情永遠不會導致提升。決不。當你沒有升高時,除非你升高,否則將無法工作的東西失敗。它不會提升你。

+0

Damnest的事情是,我創建了一個外部'MyApp.exe.manifest'文件,聲明'asInvoker',它仍然提示。然而,我重命名可執行文件,它不再這樣做。我仍然希望找到某個地方的日誌*爲什麼* Windows認爲應用程序需要提升(顯示'requireAdministrator',用戶兼容性請求,所有用戶兼容性請求,設置啓發式檢測和「其他」) – 2010-10-04 13:16:09

+0

可能是compat請求,關聯與名稱,以便更改名稱打破了請求。如果他們超過艙單,我不會感到驚訝。你可以利用這一點來建立「啄食順序」 - 我沒有看到它寫在任何地方。 – 2010-10-04 13:45:38

相關問題