2012-10-21 32 views
7

我有一個沒有資源的應用程序(根本就沒有UAC清單)。 此應用程序使用CopyFile將其自身安裝到appdata /漫遊文件夾。它還設置了自動啓動,以便在每次啓動時自動啓動。現在,每當電腦啓動時,UAC對話框就會彈出並顯示應用程序會更改電腦。如果它位於appdata中,它也在圖標上有盾牌標誌。我怎樣才能刪除圖標中的對話框/屏蔽? Windows是否檢測到複製文件API並自動設置它?Windows UAC Dialog

感謝您的回答。

+3

該exe的名稱不包括「設置」的任何機會,對不對?我知道這會自動觸發UAC提示。 – 0xFE

+1

@ user141603:您所指的是UAC的「安裝程序檢測」功能。 ''setup''只是它尋找的許多關鍵字之一,而文件名只是它尋找關鍵字的許多地方之一。有關更多詳細信息,請參閱[MSDN](http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb756960.aspx)。 –

+0

令人印象深刻。我真的不知道UAC可以通過它的文件名來觸發。謝謝:) –

回答

8

避免它的最好方法是添加應用程序清單:它明確傳達給系統,這不是遺留應用程序,也不應該安裝檢測邏輯(可能有誤報)。

此外,您的應用程序應該有一個包含文件版本和說明的VersionInfo資源。

如果您的應用程序沒有清單,系統會使用啓發式檢測它是否爲安裝程序。如果它認爲該應用程序是安裝程序,那麼運行應用程序將需要提升,並且該應用程序將在其圖標和可執行文件上進行屏蔽。

Installer detection technology摘錄:

  • 文件名包括關鍵字,如 「安裝」, 「設置」 或 「更新」。
  • 版本控制資源字段包含以下關鍵字:供應商,公司名稱,產品名稱,文件說明,原始文件名,內部名稱和導出名稱。
+0

是的。應用程序的名稱實際上是更新!不知道UAC是按文件名觸發的。謝謝! –