2010-03-25 11 views
6

क्या विंडोज एक्सप्लोरर में "विंडोज़ एक्सप्लोरर (टूल्स >> फ़ोल्डर विकल्प ...) में" छिपी हुई फाइलें, फ़ोल्डर्स और ड्राइव्स दिखाएँ "विकल्प टॉगल करने के लिए कोई फ़ंक्शन है टैब)।एपीआई "छिपी हुई फाइलें, फ़ोल्डर्स और ड्राइव दिखाएं" टॉगल करने के लिए एपीआई

मुझे संबंधित रजिस्ट्री कुंजी के बारे में पता है, लेकिन इसे बदलने से तत्काल प्रभाव नहीं पड़ेगा। कुंजी है: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Hidden

सी # से ऐसा करने का प्रयास कर रहा है, लेकिन सवाल भाषा-विशिष्ट नहीं है।

+2

यह नहीं जानते कि आप ऐसा करने का प्रयास क्यों कर रहे हैं, क्या मैं सिर्फ पूछ सकता हूं - क्या आप सुनिश्चित हैं कि आपके पास जो भी समस्या है, वह सही समाधान है? http://blogs.msdn.com/oldnewthing/archive/2008/12/11/9193695.aspx –

+0

मैं फ़ाइलों के समूहों के लिए छुपे हुए विशेषताओं को दिखाने/छिपाने के लिए उपयोगिता बना रहा हूं। इसलिए, अगर एक्सप्लोरर में छिपी हुई फाइलें दिखाई देती हैं, तो मैं एक चेतावनी पॉप अप करना चाहता हूं, और उपयोगकर्ता इसे ठीक करने के लिए क्लिक करता है। – dbkk

+0

@ डेमियन लिंक के लिए धन्यवाद, मैंने रेमंड के ब्लॉग को भी पढ़ा :) यह सामान्य बात है कि स्थानीय समस्या को ठीक करने के लिए वैश्विक ओएस राज्य का उपयोग न करें, इसलिए एक चेतावनी उचित है। – dbkk

उत्तर

4

आप विकल्पों ओपी की कोशिश कर सकते this thread पता चलता है, वह यह है कि:

या तो

SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); 

या

RefreshPolicyEx(False, RP_FORCE); 

या

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, integer(pchar('Policy')), SMTO_NORMAL or SMTO_ABORTIFHUNG, 5000, c1); 

इन में नहीं हैं वें ई नेट सी # एपीआई है, तो आप का उपयोग करने के DllImport

संपादित होगा:

+0

लिंक टूटा हुआ है। –

0

स्वरूपण मुझे कोई एपीआई के बारे में पता है, लेकिन रजिस्ट्री कुंजी HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden है। प्रयोग से, ऐसा लगता है कि 1 का मतलब दिखाता है और 2 का मूल्य छिपाने का मतलब है।

+0

डाउनवोट के लिए धन्यवाद, लेकिन अगर आपने यह जांचने के लिए समय निकाला है कि आप देखेंगे कि मेरे उत्तर के कुछ दिनों बाद रजिस्ट्री कुंजी को शामिल करने के लिए ओपी का प्रश्न संशोधित किया गया था। –

2

टिप्पणी के अलावा मैंने मूल प्रश्न में जोड़ा है - यदि आप ऐसा कर रहे हैं, उदाहरण के लिए, ओपनफाइलडियलॉग जो आप खुले पॉप करने वाले हैं, इन फ़ाइलों को दिखाता है - ऐसा न करें।

उस मामले में, आप बेहतर पी/लागू GetOpenFileName, और उचित विकल्प सेट (OFN_FORCESHOWHIDDEN (OpenFileName संरचना के झंडे में संबंधित विषय के लिए enum देखें) कर रहे हैं।

इस तरह आप केवल कर रहे हैं उचित समय पर, अपने आवेदन को प्रभावित करने

1

SHGetSetSettings

SHELLSTATE Structure fShowAllObjects BOOL छिपी हुई फाइलों और फ़ोल्डरों सहित सभी ऑब्जेक्ट्स दिखाने के लिए सही है। छिपी हुई फाइलों और फ़ोल्डरों को छिपाने के लिए गलत।

fShowSysFiles बूल सिस्टम फ़ाइलों को दिखाने के लिए सही, उन्हें छिपाने के लिए गलत।

जासूस ++ कहता है कि WM_SETTINGCHANGE एक्सप्लोरर विंडो पर भेजा जाता है।

+0

यह सेटिंग बदलने के लिए काम करता है। दुर्भाग्यवश, विंडोज 7 एक्सप्लोरर में अपडेट नहीं किया गया है (WM_SETTINGCHANGE मदद नहीं करता है)। – dbkk

संबंधित मुद्दे