विजुअल स्टूडियो सेटअप प्रोजेक्ट - प्रति उपयोगकर्ता रजिस्ट्री सेटिंग्स

मैं विजुअल स्टूडियो 2003 में एक सेटअप प्रोजेक्ट को बनाए रखने की कोशिश कर रहा हूं (हाँ, यह एक विरासत एप्लिकेशन है)। इस समय हमारे पास समस्या यह है कि हमें कंप्यूटर पर प्रत्येक उपयोगकर्ता के लिए HKCU में रजिस्ट्री प्रविष्टियों को लिखने की आवश्यकता है। उन्हें HKLU के बजाय HKCU में होना चाहिए क्योंकि वे डिफ़ॉल्ट उपयोगकर्ता सेटिंग्स हैं, और वे प्रति उपयोगकर्ता बदलते हैं। मेरी भावना यह है कि

  1. यह संभव नहीं है
  2. यह ऐसा कुछ नहीं है जिसे इंस्टॉलर करना चाहिए, लेकिन एप्लिकेशन को कुछ करना चाहिए (सब कुछ तब होता है जब इंस्टॉल करने के बाद उपयोगकर्ता प्रोफ़ाइल बनाई जाती है?)।

इसे ध्यान में रखते हुए, मैं अभी भी एप्लिकेशन में जितना संभव हो बदलना चाहता हूं, इसलिए मेरा सवाल है, क्या प्रत्येक उपयोगकर्ता के लिए विजुअल स्टूडियो 2003 सेटअप प्रोजेक्ट में रजिस्ट्री प्रविष्टियां जोड़ना संभव है ?

और, इस समय परियोजना में पांच रजिस्ट्री रूट कुंजी ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER , HKEY_LOCAL_MACHINE , HKEY_USERS , और उपयोगकर्ता / मशीन हाइव) सूचीबद्ध हैं। मैं वास्तव में उपयोगकर्ता रूट कुंजी के बारे में कुछ भी नहीं जानता, और उपयोगकर्ता / मशीन हाइव नहीं देखा है। क्या कोई मुझे बता सकता है कि वे क्या हैं? शायद वे ऊपर मेरी समस्या का समाधान कर सकते हैं।

0
जोड़ा संपादित
विचारों: 1
इस सवाल के लिए धन्यवाद
जोड़ा लेखक Danny G, स्रोत

4 उत्तर

सबसे पहले: हां, यह कुछ ऐसा है जो आपके द्वारा निर्दिष्ट सटीक रेज़ोन के लिए एप्लिकेशन में संबंधित है: नए उपयोगकर्ता प्रोफाइल बनाए जाने के बाद क्या होता है? निश्चित रूप से, यदि आप किसी डोमेन का उपयोग कर रहे हैं तो सृजन पर रजिस्ट्री में कुछ सामान रखना संभव है, लेकिन यह वास्तव में उपयोग का मामला नहीं है। आवेदन जांचना चाहिए कि क्या सीटिंग हैं और यदि नहीं तो डिफ़ॉल्ट सेटिंग्स का उपयोग करें।

ऐसा कहा जा रहा है, HKEY_USERS हाइव के माध्यम से अन्य उपयोगकर्ताओं कुंजी को बदलना संभव है।

मुझे विजुअल स्टूडियो 2003 सेटअप प्रोजेक्ट के साथ कोई अनुभव नहीं है, इसलिए यहां कुछ (पूरी तरह से असंबंधित) वीबीस्क्रिप्ट कोड है जो आपको केवल एक विचार दे सकता है कि कहां देखना है:

const HKEY_USERS = &H80000003
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = ""
objReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
strKeyPath = "\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing"
For Each subkey In arrSubKeys
    objReg.SetDWORDValue HKEY_USERS, subkey & strKeyPath, "State", 146944
Next

( जेरोनी रिटमेजर की कोड सौजन्य

0
जोड़ा

मैं एमएसडीएन पर इस प्रविष्टि के साथ अपने समाधान के लिए आंशिक हूं (मुझे नहीं पता कि मैं इसे पहले कैसे नहीं ढूंढ पाया)।

उपयोगकर्ता / मशीन हाइव
इस हाइव के तहत दर्ज उपकुंजी और मान HKEY_CURRENT_USER हाइव के तहत स्थापित किए जाएंगे जब कोई उपयोगकर्ता "जस्ट मी" या HKEY_USERS हाइव चुनता है या जब कोई उपयोगकर्ता इंस्टॉलेशन के दौरान "हर कोई" चुनता है।

रजिस्ट्री संपादक

0
जोड़ा

MSDN आलेख के बावजूद उपयोगकर्ता / मशीन हाइव, यह HKEY_USERS को नहीं लिखता है। इसके बजाय यदि आप हर किसी का चयन करते हैं तो आप एचकेसीयू को लिखते हैं यदि आप जस्ट मी और एचकेएलएम का चयन करते हैं।

तो मेरा समाधान उपयोगकर्ता / मशीन हाइव का उपयोग करने जा रहा है, और उसके बाद एप्लिकेशन में यह जांचता है कि क्या रजिस्ट्री प्रविष्टियां HKCU में हैं और यदि नहीं, तो उन्हें HKLM से कॉपी करता है। मुझे पता है कि यह संभवतः ऐसा करने का सबसे आदर्श तरीका नहीं है, लेकिन इसमें कम से कम बदलाव हैं।

0
जोड़ा

मैं अनुमान लगा रहा हूं क्योंकि आप इसे सभी उपयोगकर्ताओं के लिए सेट करना चाहते हैं, कि आप किसी प्रकार के साझा कंप्यूटर पर हैं, जो शायद डोमेन के अंतर्गत चल रहा है?

यहां ड्रैगन हो

मान लें कि जो और जेन नियमित रूप से कंप्यूटर पर लॉग ऑन करते हैं, फिर उनमें से प्रत्येक के पास 'रजिस्ट्रियां' होंगी।

फिर आप अपना ऐप इंस्टॉल करेंगे, और इंस्टॉलर उनके लिए एचकेसीयू के तहत आइटम सेट करने के लिए विशाल हैक्स और घृणित चीजों को नियोजित करेगा।

फिर, बॉब साथ आएगा और लॉग ऑन करेगा (वह, और 500 अन्य लोगों के पास डोमेन में खाते हैं और ऐसा भी कर सकते हैं)। उन्होंने पहले कभी इस कंप्यूटर का उपयोग नहीं किया है, इसलिए उनके पास कोई रजिस्ट्री नहीं है। पहली बार जब वह लॉग इन करता है, तो विंडोज़ उसे बनाता है, लेकिन उसके पास आपकी सेटिंग नहीं होगी।

आपका ऐप तब गिरता है या गलत तरीके से व्यवहार करता है, और बॉब रेनिक्सन से जुड़े उन क्रैपी उत्पादों के बारे में जोर से शिकायत करता है।

सही उत्तर सिर्फ आपके ऐप में कुछ डिफ़ॉल्ट सेटिंग्स रखना है, जो उन्हें रजिस्ट्री में लिख सकते हैं यदि उन्हें नहीं मिलता है। यह सामान्य अच्छा अभ्यास है कि आपके ऐप को कभी भी रजिस्ट्री पर निर्भर नहीं होना चाहिए, और किसी भी रजिस्ट्री प्रविष्टि के लिए आवश्यकतानुसार चीजें बनाना चाहिए, न केवल HKCU, वैसे भी

0
जोड़ा