2012-08-27 22 views
7

Sadece Windows başladığında geçerli kullanıcı için birkaç uygulama başlatmaya çalışıyorum.Windows'da C# Uygulaması Çalıştır Başlayın

RegistryKey oKey = Registry.CurrentUser.OpenSubKey("Software", true); 
oKey = oKey.OpenSubKey("Microsoft", true); 
oKey = oKey.OpenSubKey("Windows", true); 
oKey = oKey.OpenSubKey("CurrentVersion", true); 
oKey = oKey.OpenSubKey("Run", true); 
oKey.SetValue("Application 1", "C:\\path\\to\\ap1.exe"); 
oKey.SetValue("Application 2", "C:\\path\\to\\ap2.exe"); 

Ama Visual Studio ınstaller Projesi kapsamında bu yönetmeye çalışıyorum:

aşağıdaki ile gerçekleştirebilirsiniz. Özel eylemimi ekledim, program gerektiği gibi başlıyor ve yükleyici XP'de harika çalışıyor.

Windows 7'de, yükleyici yükseltilmiş ayrıcalıklar alır ve her şeyi yapar, ancak girdileri geçerli kullanıcı için kayıt defterine ekler. Bununla birlikte, bağımsız bir uygulama (yükleyici projenin dışında) olarak çalıştırıldığında kayıt defteri girdilerini ekler ve yükseltilmiş ayrıcalıklara sahip olmaz.

Anlayabildiğim tek şey, yükseltilmiş ayrıcalıklarla, girdileri geçerli kullanıcı yerine Administrators hesabına girmeye çalışmaktır. yoksa özlediğim başka bir şey var mı? ve hedefime ulaşmamın başka bir yolu var mı?

+0

Daha fazla bilgi verebilir misiniz? ya da amacını detaylandırır mısınız lütfen? – VIRA

+1

'Registry.LocalMachine.OpenSubKey()' yi alırsanız ne olur? – wasyl

+0

Bunu yapmak için herhangi bir özel eyleme ihtiyaç duymazsınız. –

cevap

2

Kullanıcı için başlangıç ​​klasörünü kullanmamanın bir nedeni var mı?

Muhtemelen sorun, yükleyicinin altında çalıştığı kullanıcı. Kullanıcı yönetici değilse, yükseltilmiş yükleyici işlemi yükselten kullanıcı bağlamında çalışır.

Uygulamanızı başlangıç ​​klasörüne eklemek veya ilk lansmanında kayıt defteri anahtarını eklemek daha güvenli bir seçim olacaktır.

1

Yükleyici yükseltilmiş izin alıyorsa, ayarı HKCU'ya neden yazalım? Bunun yerine HKLM'ye yazın. Daha sonra tüm kullanıcılar için geçerli olacaktır.

+0

'HCKU',' HKCU' aynı fark! – ja72

+0

Evet, bu bir seçenek .. ama sadece geçerli kullanıcı için beklemeyi umuyordum – C0NFUS3D

+2

Kullanıcıya özel yapılandırma ayarları en iyi uygulama tarafından yükleyici tarafından yapılandırılmış. –

İlgili konular