मेरे पास सी # (v2) ऐप्स का एक सेट है और मैं Win7 (और कुछ हद तक Vista) में रजिस्ट्री वर्चुअलाइजेशन के साथ संघर्ष कर रहा हूं।रजिस्ट्री वर्चुअलाइजेशन का पता लगाना
मेरे पास एक साझा रजिस्ट्री कॉन्फ़िगरेशन क्षेत्र है जो मेरे अनुप्रयोगों को HKLM \ Software \ Company में एक्सेस करने की आवश्यकता है ... Vista से पहले, सबकुछ बस उस स्थान से लिखा गया था और आवश्यकतानुसार पढ़ा गया था।
कोड उचित रूप से उस रजिस्ट्री कुंजी को लिखने में असफलताओं का पता लगाता है और उचित रूप से वापस आ जाएगा (इसके बजाय एचकेसीयू को लिखना और उपयोगकर्ता को सूचित करना कि उनके द्वारा लागू सेटिंग्स केवल वर्तमान उपयोगकर्ता को प्रभावित करेगी)।
Vista में, रजिस्ट्री वर्चुअलाइजेशन ने यह सब तोड़ दिया क्योंकि एचकेएलएम लिखने के लिए हम जिस एक्सेस चेक का उपयोग कर रहे थे वह चुपचाप "सफल" होगा और इसके बजाय HKCR \ VirtualStore \ Machine ... को वर्चुअलाइज करेगा। इस मामले में, उपयोगकर्ता सोचता है कि उन्होंने मशीन-व्यापी कॉन्फ़िगरेशन सहेजा था, लेकिन इसके बजाय केवल वर्चुअल स्टोर को लिखा था।
अफसोस की बात है कि, HKLM reg कुंजी पर अनुमतियों को गिनने का प्रयास करने से भी स्पष्ट रूप से परिणाम मिलते हैं जो दर्शाते हैं कि उपयोगकर्ता के पास पहुंच है या नहीं।
जब हमने Vista समर्थन जोड़ा, तो हमारे द्वारा उपयोग किए जाने वाले वर्कअराउंड को HKLM को एक जांच लिखना था ... और फिर उसी मूल्य के लिए HKCR \ VirtualStore \ Machine ... में जांचें और ध्यान दें कि मूल्य वर्चुअलाइजेशन हुआ था मिला था।
Win7 ने इसे (दोबारा) तोड़ दिया है क्योंकि स्पष्ट वर्चुअल लोकेशन (एचकेसीआर) के खिलाफ प्रश्न अब एचकेएलएम स्थान से विलय किए गए परिणाम दिखाते हैं, भले ही लेखन वर्चुअलाइज्ड नहीं था।
क्या किसी के पास इस के आसपास काम करने के लिए कोई सुझाव है?
बाधाएं: - मुझे एक समाधान की आवश्यकता है जो उन्नयन की आवश्यकता के बिना काम करता है (जब मेरे पास व्यवस्थापक स्तर की अनुमति नहीं है तो मैं HKCU में प्रति उपयोगकर्ता कॉन्फ़िगरेशन पर फ़ॉलबैक कर दूंगा लेकिन मुझे इस मामले को विश्वसनीय रूप से पहचानने में सक्षम होना चाहिए) ।
-
कि सी में
यह एक वी 2 सी # अनुप्रयोग (एक विकल्प मैं सी के लिए देखा है के साथ काम करने की जरूरत ++ कोड एक प्रकट जो .exe के लिए वर्चुअलाइजेशन को निष्क्रिय एम्बेड करने के लिए है, लेकिन मैं ऐसा करने में सक्षम नहीं किया गया है # V2 disable folder virtualization in windows देखें)।
इसे "इंस्टॉलर" के बिना काम करने की आवश्यकता है (यह रजिस्ट्री कुंजी पर वर्चुअलाइजेशन को अक्षम करने की क्षमता को रोकता है जिसे हमें आरईजी फ्लैग्स ... कमांड की आवश्यकता होती है)।
आप boxedapp उपयोग करने के लिए कोशिश की है (भले ही, मूल पोस्टिंग की तारीख पढ़ करने के बाद, मैं बहुत यकीन है कि समस्या बहुत पहले हल किया गया है !! हूँ) ? यह मदद कर सकता है। सौभाग्य! –
आपको बॉक्स किए गएapppacker या boxedapp का उपयोग करना चाहिए। एक आवेदन के लिए Itemulate सिस्टम रजिस्ट्री। – MastAvalons