2011-09-20 21 views
10

Bir uygulama için bir yükleyici oluşturmak üzere Inno Setup'ı (http://www.jrsoftware.org/isfaq.php) kullanmak istiyorum.Inno Setup - Bir kullanıcı Windows'a giriş yaptığında programımı nasıl çalıştırabilirim?

Bu uygulamanın, bir kullanıcı Windows makinesindeki hesabında oturum açtığında başlamasını istiyorum.

Bir kullanıcı oturum açtığında, programın başlatılması için Inno Setup'a nasıl söylerim?

+0

Kullanıcı bunu ister mi? –

+0

Kullanıcının 'Başlat' başlangıç ​​menüsündeki uygulamaya bir kısayol ekleyin. Kullanıcının 'Çalıştır' kayıt defteri girdisine bir anahtar ekleyin? –

+0

Evet, kullanıcının istediği bu. Tamam, bunu Inno Setup ile nasıl yapabilirim? –

cevap

27

Tüm Kullanıcılar profilinin başlangıç ​​klasörüne kısayol koyun.

[Setup] 
PrivilegesRequired=admin 

[Icons] 
Name: "{commonstartup}\My Program"; Filename: "{app}\MyProg.exe" 

programı yüklü kullanıcı açtığında program, sadece çalıştırmak isterseniz

ardından yerine {commonstartup} ait {userstartup} kullanın: Aşağıdaki örnek içerir bilgi bankası makalesine ' Create shortcuts in the Startup (or Autostart) group' bakınız. Bu durumda yönetici ayrıcalıklarına gerek yoktur.


Yoksa sicil 'Çalıştır' tuşunun (kb article) için yazmaya karar eğer:

[Registry] 
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProg"; ValueData: """{app}\MyProg.exe"""; Flags: uninsdeletevalue 

sen 'HKLM' kullanırsanız

, yine yönetici ayrıcalıkları gereklidir. otomatik autorun kayıt defteri anahtarını gibi vereceğini kurulum yapmanıza çalışırken

Belki
+0

Teşekkürler! Bu ihtiyacım olan şey! –

+0

Windows hizmeti olarak kurmak istersek ne yapmalıyım? Cevabında bahsettiğin yolu denedim. Ancak program, döngü sırasında bir sonsuza kadar devam etmesine rağmen ortaya çıkıyor ve çıkıyor. – rahulserver

+0

@rahulserver - "net start svcname" için bir kısayol oluşturabilirsiniz. –

1

o kimse için yararlı olacaktır ...

Ben pencereler 8 altında bazı sorunlarla karşılaştı: çalıştırmak için

Root: "HKCU"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue 

benim Her Windows başlangıcında 32 bit .NET uygulaması. , Başvurum hiçbir ile Sistem açılışında başlayan

Root: "HKCU32"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue 

satır ekleyerek ve yeniden sonra: Root: "HKCU32" ile Root: "HKCU" yerine geçecekti biraz modifikasyon ihtiyaç vardı 32 bit uygulama için bu kadar kurulum komut girişi olduğunu oluştu sorunları.

+0

Bu nedenle, 64-bit kurulum modunu çalıştırıyorsunuz, burada HKCU kök anahtarı 64 bit kayıt görünümünde eşleniyor. Bu görev için görev zamanlayıcı kullanabileceğinden bahsetmeye değer. – TLama

+0

Yorumunuz için teşekkürler - aklımdan geçmemişti :), ama görev için zekice yeterli bilgi sahibi olmadığımı düşünüyorum –

+0

Görev zamanlayıcı aracı oldukça iyi ['tarif'] (http://msdn.microsoft) .com/tr-us/library/windows/desktop/bb736357 (v = vs85) .aspx) birçok ['samples'] ile (http://technet.microsoft.com/en-us/library/cc725744). aspx # BKMK_create), sistem başlangıcı için ['' bu '' (http://technet.microsoft.com/en-us/library/cc725744.aspx#BKMK_startup). – TLama

İlgili konular