2010-03-10 13 views
7

Bir NSIS yükleyicisi yazıyorum ve kurulum programı Windows 7/Vista'da gerektiği gibi "yönetici olarak" yükseliyor. Yüklü programı yüklemenin sonunda çalıştırmalı ve yükleyiciyle aynı ayrıcalıklarla başlatmak istemiyorum.Bir UAC yükseltilmiş yükleyiciden normal kullanıcı olarak nasıl bir program başlatılır

Düzenli NSIS exec komutları, alt işlemi, yükleyici ile aynı izinlerle birlikte çalıştırır.

NSIS için bir UAC eklentisi var, ancak üzerindeki belgeler mükemmel değil ve yeni görünüyor; Bu eklentiyi kullanmamayı tercih ederim.

İdeal olarak, UAC yükseltmesi olmadan hedef programı başlatan ekleyebileceğim küçük bir .exe arıyorum. Bu var mı?

Başka önerileriniz var mı?

Teşekkürler!

cevap

4

Yalnızca iki seçenek vardır:

  • konudaki geçersiz ve (NT6 + 'da çalıştırırken) çalıştırmak onay kutusunu kaldırmak
  • Kullanım UAC eklenti (O yeni değil, ama bir ağrı etmektir kullan, bu yüzden sadece ilk seçeneğe gitmenizi öneririm)

Artık kullanabileceğiniz harici bir program yoktur, çünkü yükseltilmiş bir süreçten orijinal kullanıcıya geri dönmek imkansızdır. oldukça yakın, ama g olmaz et her durumda doğru kullanıcı)

+2

Seçenek 1 seçmiş olduğumuz şeydir, ancak bu "ideal" değildir. Microsoft, "yükseltilmiş" bir işlemi yürütmeyi imkansız hale getirdi mi? Bunun için bir API olmaması saçma görünüyor. NSIS için yeni ve çok iyi bilmiyorum, bu yüzden UAC'nin MultiUser.nsh betiği ile nasıl etkileşime gireceğinden tam olarak emin değilim. Yani, bununla uğraşmak istemediğim başka bir komplikasyon. –

+3

@KZ: Evet, yükseltilmiş bir süreçten yükseltilmiş bir süreci başlatmak imkansız. Tek çözüm, yükseltilmiş bir süreçle başlamak, yükseltilmiş sürecinizi başlatmak ve yükseltilmiş işlemin tekrar Bir şey başlatmak istediğinizde bir yükselti.Bu UAC eklentisinin yaptığı şeydir.Aşağıda olmadan aylarca kullanıyorum. –

+0

Tamam o zaman, 1. ve 2. seçeneklere geri dönüyorum. Daha sonra inşa etmek için UAC eklentisi Yardımın için teşekkürler! –

0

buldum aa basit bir komut satırı yardımcı programı içine wrappered edilebilir ki, şu: Sadece bu kod için çalışan almak için yaklaşık bir saat sürdü

http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/

benim proje ve bugüne kadar kusursuz çalışıyor. ;)

+0

Yükleyici (RunAs/Secondary Logon) çalıştıran kullanıcı oturum açma kullanıcı/gezgin kabuğu ile aynı değilse? Her durumda bu işlere geri dönmenin hiçbir yolu yoktur! – Anders

+0

Neden MS, neden bunu yapmak için doğrudan bir yöntem vermedi ?! Tuhaf! Bu durum tipik durumda çalışacağından (son kullanıcı yükleyicimizi yükseltilmiş ayrıcalık modunda çalıştırıyor), bizim için çalışacaktır. Ama iç çek ... – Mordachai

İlgili konular