2008-09-25 13 views
7

में फ़ाइल गुणों में अवरुद्ध एक्सई "अनब्लॉक" विकल्प को पुन: उत्पादित करना जब मैं अपनी वेबसाइट से अपनी विंडोज 2003 मशीन पर अपना प्रोग्राम डाउनलोड करता हूं, तो इसमें एक ब्लॉक होता है और आपको एक्सई, फिर गुणों पर राइट क्लिक करना होगा, फिर "अनब्लॉक" बटन का चयन करें।विंडोज 2003

जब मैं फ़ाइल अवरुद्ध करता हूं और इसलिए पर्याप्त अनुमति नहीं है, तो मैं अपने इंस्टॉलर में पहचान जोड़ना चाहता हूं।

लेकिन मैं इस स्थिति में अपने exe प्राप्त करने की पुन: उत्पन्न नहीं कर सकता जहां इसे अनब्लॉक करने की आवश्यकता है।

मैं अपने exe पर प्रकट होने के लिए अनब्लॉक कैसे प्राप्त कर सकता हूं ताकि मैं इस कार्यक्षमता का परीक्षण कर सकूं?

उत्तर

19

यह एनटीएफएस फ़ाइल स्ट्रीम का उपयोग करके किया जाता है। डाउनलोड की गई फ़ाइलों में "Zone.Identifier" नामक एक स्ट्रीम है। IE7 फ़ाइल के कुछ प्रकार के डाउनलोड करता है कि धारा में शामिल हैं:

[ZoneTransfer] 
ZoneId=3 

यह स्थापित करने के लिए सबसे आसान तरीका उस में उन सामग्री के साथ एक पाठ फ़ाइल बनाते हैं, और वैकल्पिक धारा में जोड़ने के लिए और अधिक उपयोग करने के लिए है।

Zone.Identifier.txt:

[ZoneTransfer] 
ZoneId=3 

कमान:

more Zone.Identifier.txt > file.exe:Zone.Identifier 

उसके बाद, आप यह जाँच करने के लिए के लिए रास्ता Zone.Identifier स्ट्रीम को खोलने के लिए कोशिश करते हैं और ZoneId देखने के लिए होगा = 3, या बस मान लें कि यदि स्ट्रीम उस उपयोगकर्ता पर मौजूद है जो आपके उपयोगकर्ता को चेतावनी प्राप्त करेगी।

यह भी ध्यान रखना महत्वपूर्ण है कि इसकी अनुमतियों के साथ कुछ लेना देना नहीं है। प्रशासक एक ही चेतावनी देखते हैं; यह पूरी तरह से स्रोत और फ़ाइल के प्रकार के साथ करना है। पूरी स्ट्रीम तब जाती है जब उपयोगकर्ता "इस फ़ाइल को खोलने से पहले हमेशा पूछें" बॉक्स को अनचेक करते हैं और फिर चलाएं क्लिक करें।

+0

आपकी जानकारी के लिए धन्यवाद, महान जानकारी। –

+0

यह वही जानकारी है जिसे मैं ढूंढ रहा था –

11

इसके लिए एक समर्थित एपीआई है, जो एमएसडीएन पर प्रलेखित है। "निरंतर जोन पहचानकर्ता ऑब्जेक्ट" के लिए एमएसडीएन पर खोजें। मूल रूप से CLSID_PersistentZoneIdentifier के साथ और IPersistFile इंटरफ़ेस का अनुरोध करें। फिर आप प्रश्न में फ़ाइल के नाम के साथ IPersistFile::Load पर कॉल करें। अगला, IZoneIdentifier इंटरफ़ेस के लिए क्यूआई और फ़ाइल के क्षेत्र को प्राप्त करने के लिए IZoneIdentifier::GetId का उपयोग करें। यदि कोई "वेब का निशान" नहीं था, तो आपको URLZONE_LOCAL_MACHINE मिलना चाहिए। दूसरे उत्तर में उल्लिखित 3 का जोनआईडी URLZONE_INTERNET है। (गणना URLZONE कहा जाता है और इसे एमएसडीएन पर भी दस्तावेज किया गया है, या sdk\inc\urlmon.h देखें।) आप IZoneIdentifier::Remove या IZoneIdentifier::SetId पर कॉल करके "वेब के चिह्न" को हटा या बदल सकते हैं और फिर IPersistFile::Save पर कॉल कर सकते हैं। एमएसडीएन पर इस सब के बारे में अधिक जानकारी है। सौभाग्य!

1

इसके लिए धन्यवाद, इससे मुझे बहुत मदद मिली।

यदि आप सामग्री के साथ बैच फ़ाइल बनाते हैं तो आप प्रक्रिया को और भी आसान बना सकते हैं।

echo [ZoneTransfer] > Zone.Identifier 
echo ZoneId=3 >> Zone.Identifier 
more Zone.Identifier > %1:Zone.Identifier 

यह आपके लिए जोन जेडेंटिफायर उत्पन्न करेगा और तदनुसार फ़ाइल को चिह्नित करेगा।

इसे चलाने के लिए बस फ़ाइल नाम की आपूर्ति करें उदा। अगर फ़ाइल को मार्क.बैट

mark.bat myfile.txt 
संबंधित मुद्दे