2010-07-05 8 views
5

Mam aplikację VB6, którą sprzedawam od ponad 12 lat. Czasami mam użytkowników, którzy mają problemy z uruchomieniem aplikacji. Zapis danych przechodzi do/My Documents, więc nic oprócz plików instalacyjnych (EXE itp.) Trafia do C: \ Program Files (lub C: \ Program Files (x86)).Zapobieganie wirtualizacji UAC?

Rozwiązaniem problemu jest uruchomienie aplikacji, mimo że wygląda na zawieszoną, wyświetlenie menedżera zadań, wyświetlenie procesów, kliknij prawym przyciskiem myszy proces mojej aplikacji i usuń zaznaczenie opcji Wirtualizacja UAC. Potem każę im naprawić instalację i wszystko jest w porządku.

Dlaczego mój proces jest poddawany wirtualizacji UAC i jak mogę temu zapobiec? Używam również InstallShield 2010 Professional do stworzenia instalacji, nie jestem pewien, czy jest to związane z instalatorem lub samą aplikacją.

Odpowiedz

9

Aby zapobiec wirtualizacji, dodaj manifest do aplikacji. Niezależnie od tego, czy mówisz, że jesteś Invokeoker, czy też potrzebujesz agenta administracyjnego, nie będziesz już korzystać z wirtualizacji. Zgaduję, że InVoker będzie dla Ciebie lepszy, ponieważ aplikacja działa poprawnie bez podnoszenia.

Możesz po prostu umieścić plik foo.exe.manifest w tym samym folderze co plik exe lub osadzić go, co ma kilka trudnych rzeczy, takich jak uczynienie manifestu wielokrotnością 4 bajtów. This question obejmuje niektóre szczegóły dotyczące osadzania.

+0

Dziękuję za informację. Wszelkie linki do tego, jak utworzyć ten manifest? – Neal

+1

W najprostszej postaci jest to plik XML o nazwie yourexename.exe.manifest i umieszczony w tym samym folderze co nazwa_rexy. Przykładowy materiał można znaleźć między innymi pod adresem http://csi-windows.com/toolkit/manifest-template. Część "requestedPrivileges" jest ważnym aspektem. –

Powiązane problemy