2012-03-23 10 views
7

के लिए जावा में फ़ाइल आइकन ओवरले मैं टोर्टोइस एसवीएन या ड्रॉपबॉक्स की तरह फ़ाइलों और फ़ोल्डर्स पर आइकन ओवरलेइंग को लागू करने की कोशिश कर रहा हूं।विंडोज़

मैंने इंटरनेट पर बहुत सी खोज की, लेकिन मुझे जावा में कोई समाधान नहीं मिला।

क्या कोई इस से मेरी सहायता कर सकता है? enter image description here

+1

अच्छा सवाल है, लेकिन मैं इसे के रूप में जावा कार्यक्रमों में चलाने ऐसा करना संभव नहीं है लगता होगा जावा आभासी मशीन, जो उन्हें चल रहे ऑपरेटिंग सिस्टम से निकाल देती है। उत्तर के रूप में पोस्ट नहीं कर रहा है क्योंकि मुझे यकीन नहीं है। –

+0

आपको वास्तव में परिवर्तन करने के लिए देशी कोड में कूदने के लिए जेएनआई का उपयोग करने की आवश्यकता होगी (यानी, अगर यह कुछ WinAPI के माध्यम से भी संभव है)। – Java42

+0

@ डब्ल्यू। गोमेन हां, यह जावा में भिन्न या असंभव प्रतीत होता है, लेकिन मुझे लगता है कि ऐसा करने का एक आसान तरीका होना चाहिए। मुझे नहीं पता लेकिन शायद जावा या इत्यादि में आइकन ओवरलेइंग के लिए लाइब्रेरी है – baharcglr

उत्तर

4

मुझे आपके डर की पुष्टि करने के लिए खेद है, लेकिन यह जावा में नहीं किया जा सकता है।

चूंकि विंडोज एक्सप्लोरर नियंत्रण में है, आइकन ओवरले प्लग-इन की तरह है। इसे एक डीएलएल (जेएनआई नहीं बल्कि एक वास्तविक देशी डीएलएल) के रूप में कार्यान्वित किया जाना है, और विंडोज रजिस्ट्री में पंजीकृत है। जैसा कि आपने कोडप्रोजेक्ट आलेख में देखा था, आपके डीएलएल को विशिष्ट इंटरफ़ेस - IShellIconOverlayIdentifier लागू करना होगा।

उदाहरण के लिए TortoiseSVN implementation लें।

TortoiseSVN के DLL एक्सप्लोरर द्वारा लोड और अपनी प्रक्रिया से जुड़ा हुआ है:

DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */) 
{ 
    ... 
    if (dwReason == DLL_PROCESS_ATTACH) 
    ... 

आदेश जावा में यह करने के लिए आप एक DLL कि JVM और अपने जार जो एक होगा लोड होगा लिखने के लिए की आवश्यकता होगी overkill।

ट्रे आइकन ओवरले के लिए, आपका जावा एप्लिकेशन नियंत्रण में है इसलिए यह किया जा सकता है।

1

मुझे एक ही समस्या थी और मूल और जेनी डीएलएस के साथ संयोजन में जावा 1.7+ के लिए एक समाधान मिला। विंडोज विस्टा +, मैक और लिनक्स के साथ काम करता है। मेरी तो यहाँ सवाल देखें https://github.com/liferay/liferay-nativity

:

आप यहाँ GIT परियोजना पा सकते हैं Method to implement Windows Explorer icon overlays with Java