2013-04-18 10 views
10

Mam instalator (Inno-Setup), który instaluje moją aplikację do ścieżki zdefiniowanej przez użytkownika. Na końcu procedury instalacji chcę utworzyć skrót, który uruchamia aplikację z uprawnieniami administratora. Rozwiązanie powinno działać na wszystkich wersjach wygranych z WinXP do Win7.

Co mogę zrobić, aby to osiągnąć?

Wiem, że jest to possible with a batch script, that executes a nasty vb-script. Wadą jest to, że wyskakuje okno cmd i działa tylko na Win7.

Próbowałem również polecenia mklink, aby utworzyć hiperłącze, ale nie działa, ponieważ nie można przekazać argumentu, który ustawił uprawnienia administratora.Jak utworzyć skrót do uruchomienia aplikacji z uprawnieniami administratora z wiersza cmd?

+0

Dodaj 'runas' przed linią poleceń. – TLama

+0

Gdzie chcesz utworzyć hiperłącze? Inno używa standardowych formantów Win32, dla których natywna metoda to przycisk lub pole wyboru na ostatniej stronie. A może chcesz utworzyć skrót, który użytkownik może uruchomić później? – Deanna

+0

@ TLama 'runas/user: admin' pyta o hasło na linii cmd, które nie jest opcją, którą użytkownik powinien otrzymać w oknie dialogowym. – Chriss

Odpowiedz

13

Możesz dodać rejestru klucz, który mówi okna, aby wykonać swój program jako admin:

Under HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, wystarczy dodać kluczową (REG_SZ) <Path to your exe> z wartością RUNASADMIN. Po uruchomieniu exe zostaniesz poproszony o dostęp administracyjny.

Dzięki temu możesz po prostu utworzyć normalny skrót do pliku wykonywalnego, tak jak robiłbyś to za pomocą Inno-Setup.

Jeśli chcesz to zrobić za pomocą cmd lub pliku wsadowego, można użyć następującego polecenia:

reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "<Path to your exe>" /t REG_SZ /d RUNASADMIN 
+0

Ale jak to zrobić, używając pliku wsadowego? Czy możesz podać próbkę? – Chriss

+0

@Chriss: Zobacz zaktualizowany post. – looper

+0

Ładne i łatwe! Przywiązał go do Win7 i działa. Dodam to do końca skryptu instalatora i gotowe! Za każdym razem, gdy użytkownik uruchamia aplikację, pojawia się okno dialogowe uprawnień. – Chriss

1

"Uruchom jako admin" jest własnością pliku wykonywalnego, a nie skrótu. Powinieneś dodać required manifest, który sprawia, że ​​Windows monituje o podniesienie.

Aby zrobić to w systemie Windows XP, należy użyć czasownika runas z ShellExecute(), aby działać jako inny użytkownik, ale to usunie jakąkolwiek możliwość uzyskania dostępu do lokalnego profilu. Można to zrobić z poziomu exe, gdy stwierdzi, że nie działa z pełnym dostępem administratora.

+0

problem polega na tym, że nie mogę zmienić lub rekompilować exe, jego aplikacji java, również wypróbowałem polecenie 'runas/user: admin', ale nie wyświetla ono okna dialogowego, ale hasło linii poleceń promt – Chriss

+0

Tak, XP nie ma koncepcji UAC ani elewacji. Jeśli użytkownik nie ma uprawnień administratora, jedyną opcją jest uruchamianie jako inny użytkownik, który to robi. – Deanna

+0

Poprawiłem także odpowiedź, runas jest tylko CLI, musisz użyć 'czasownika' do' ShellExecute() 'zamiast – Deanna

Powiązane problemy