2012-10-21 8 views
7

Mam aplikację, która nie ma zasobów (w ogóle, więc nie ma manifestu UAC). Ta aplikacja instaluje się w folderze appdata/roaming za pomocą CopyFile. Ustawia również autostart, który uruchamia się automatycznie przy każdym starcie. Teraz przy każdym uruchomieniu komputera pojawia się okno UAC i mówi, że aplikacja zmienia się na PC. Ma również znak tarczy na ikonie, jeśli jest umieszczony w appdata. Jak mogę usunąć okno dialogowe/tarczę w ikonie? Czy system Windows wykrywa API copyfile i ustawia go automatycznie?Windows UAC Dialog

Dziękuję za odpowiedź (e).

+3

Nazwa exe nie obejmuje "instalacji" przez przypadek, prawda? Wiem, że to automatycznie uruchomi monit UAC. – 0xFE

+1

@ user141603: to, co masz na myśli, to funkcja "Wykrywanie Instalatora" UAC. '" setup "' jest tylko jednym z wielu słów kluczowych, których szuka, a nazwa pliku jest tylko jednym z wielu miejsc, w których szuka słów kluczowych. Więcej informacji można znaleźć w witrynie [MSDN] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb756960.aspx). –

+0

imponujące. Naprawdę nie wiedziałem, że UAC może zostać wywołany przez jego nazwę pliku. Dziękuję :) –

Odpowiedz

8

Najlepszym sposobem, aby tego uniknąć jest dodanie aplikacji manifest: to wyraźnie przekazuje do systemu, że nie jest to aplikacja dziedzictwo i zainstalować żadnej logiki wykrywania (co może mieć fałszywych alarmów), powinny być stosowane.

Dodatkowo Twoja aplikacja powinna mieć zasób VersionInfo, który zawiera wersję pliku i opis.

Jeśli aplikacja nie ma manifestu, system używa heurystyki do wykrywania, czy jest to instalator. Jeśli uważasz, że aplikacja jest instalatorem, wtedy uruchomienie aplikacji będzie wymagało podniesienia, a aplikacja będzie miała osłonę na swojej ikonie i pliku wykonywalnym.

Fragment Installer detection technology:

  • Nazwa pliku zawiera słowa kluczowe, takie jak "install", "setup" lub "update".
  • Pola zasobów dotyczące wersji zawierają następujące słowa kluczowe: Dostawca, Nazwa firmy, Nazwa produktu, Opis pliku, Oryginalna nazwa pliku, Nazwa wewnętrzna i Nazwa eksportu.
+0

że to było. nazwa aplikacji została faktycznie zaktualizowana! Nie wiedziałem, że UAC wyzwala przez nazwę pliku. Dziękuję Ci! –

Powiązane problemy