2011-02-08 10 views
5

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

इस तरह से मेरे मैक्रोज़ के किसी भी संस्करण को कंपनी के पीसी पर तैनात करना संभव है लेकिन कोई भी इसके पीछे असली कोड नहीं देख पाएगा।

यह कैसे संभव है? मैंने सी ++ में कनवर्ट करने और डीएलएल बनाने पर पढ़ा है। क्या इसके लिए कोई कदम-दर-चरण समाधान है?

+1

मुझे डीएलएल के लिए पता नहीं है, लेकिन आप अपने कोड को सुरक्षित करके, इसे ऐड-इन के रूप में सहेजकर और इसे तैनात करके अपना लक्ष्य भी प्राप्त कर सकते हैं। –

+0

@iDevlop: यदि मुझे लगता है कि 50 से अधिक लोगों द्वारा उपयोग किया जाता है तो मैं उपयोगकर्ता जोड़ सकता हूं .. सही? – Skuta

+2

@ सुका: नहीं, ऐड-इन के रूप में सहेजें 5 मिनट की चाल है! सिर्फ हैकर सबूत नहीं, क्योंकि मैगलेन्स इसे इंगित करते हैं, लेकिन व्यापार उपयोगकर्ताओं को कोड देखने और चुपचाप अपडेट करने के लिए सही है। –

उत्तर

3

आप अपने VBA, कोड की रक्षा कर सकते काम हो गया।लेकिन पासवर्ड सुरक्षा कमजोर है। XLA को सभी एक्सेल संस्करणों के साथ काम करना आसान है।

एक संकलित वीबी 6 ऑटोमेशन एडिन में कनवर्ट करना एक आसान विकल्प है। सुरक्षा अच्छी है, इसे बदलने में आसान है, यह यूडीएफ और कमांड एडिन दोनों को संभालेगा। लेकिन यह एक्सेल 2010-64 या एक्सएल 2000 जैसे एक्सेल के प्रारंभिक संस्करणों के साथ काम नहीं करेगा। आपको एक वीबी 6 कंपाइलर की आवश्यकता होगी, जिसे खोजना मुश्किल हो सकता है।

एक कठिन विकल्प .NET में कनवर्ट करना है। यदि आप कई obfuscators में से एक का उपयोग करते हैं तो सुरक्षा उचित है। प्रदर्शन तब तक खराब होगा जब तक कि आप उन उपकरणों में से किसी एक का उपयोग न करें जो एक्सएलएल इंटरफ़ेस, जैसे एक्सेल डीएनए या एडिन एक्सप्रेस के माध्यम से .NET पहुंच की अनुमति देता है। 64-बिट क्षमता भी उपलब्ध है।

यदि प्रदर्शन और सुरक्षा महत्वपूर्ण है तो आपको सी ++ एक्सएलएल में परिवर्तित करने की आवश्यकता होगी, लेकिन वीबीए से आने पर यह कठिन काम है।

2

ए) आप अपने मैक्रो को एक अलग फ़ाइल में सहेज सकते हैं और पासवर्ड से इसकी रक्षा कर सकते हैं, लेकिन "पासवर्ड पुनर्प्राप्त करें" के लिए प्रोग्राम मौजूद है जो ऐसी सुरक्षा को तोड़ सकता है।

बी) सी ++ डीएल करने के लिए संभव है, दृश्य मूल 6 का उपयोग करने के बजाय स्मार्ट करना है क्योंकि वाक्यविन्यास vba के समान ही है। Vb6 में आप एक COM घटक बना सकते हैं, इसे पंजीकृत कर सकते हैं और बाद में एक्सेल शीट में जोड़ सकते हैं।

4

सबसे पहले, मुझे सामान्य रूप से इसके खिलाफ आपको चेतावनी देने दें। हमने इसे एक बार कॉर्पोरेट ऐप के साथ किया था और पोर्ट को ले जाने का समय लगभग मूल रूप से ऐप लिखने के लिए उतना ही था। इसके लिए एक चरण-दर-चरण मार्गदर्शिका मौजूद नहीं होगी क्योंकि आप मूल रूप से स्क्रैच से ऐप को फिर से लिख रहे हैं।

दूसरा, आपके एक्सेल वीबीए जो कुछ भी कर सकता है वह सब COM, या XLL में उपलब्ध नहीं है। उपलब्ध घटनाएं अलग हैं; एक्सएलएल के मामले में सभी डेटा प्रकारों के लिए उपयोग करने के लिए पूरी तरह से नई संरचनाएं हैं। COM में कोई यूडीएफ नहीं है; एक्सएलएल में कोई मैक्रो क्रिया नहीं है। अब आप वर्कशीट्स (केवल एक्सेल सत्र) में कोड संलग्न नहीं कर पाएंगे और इंस्टॉल प्रक्रियाएं अधिक जटिल हैं। मैं लंबे समय तक शोध कर रहा था कि आपका वीबीए एक विशेष पथ को शुरू करने से ठीक पहले क्या करता है।

यह इस बात पर निर्भर करता है कि आपका ऐप कितना बड़ा है, लेकिन मैं आपको एक अलग वास्तुकला के साथ खरोंच से शुरू करने के बजाय वॉटरटाइट लाइसेंस तैयार करने और कुछ बुनियादी कोड obfuscation (मूल टिप्पणियों के अनुसार) में पैसा निवेश करने के लिए प्रोत्साहित करता हूं।

कयामत की वाहक होने के लिए क्षमा करें ...

क्रिस

2

आप अपने लक्ष्य एक्सेल संस्करण का उल्लेख नहीं था, लेकिन मैं एक सामान्य दृश्य दे देंगे।

  1. सुनिश्चित करें कि आपका कोड AddIn के लिए उपयुक्त है। उदा।: इस वर्कबुक के बजाय, ActiveWorkbook का उपयोग करें।
  2. यह भी तय करें कि आपको मेनू बनाने या शॉर्टकट कुंजियों का उपयोग करने की आवश्यकता है, और तदनुसार अपना कोड संशोधित करें, और इसकी रक्षा करें।
  3. वीबीई में, IsAddin संपत्ति को True में बदलें।
  4. अपनी फ़ाइल के रूप में सहेजें "और एक्सेल ऐड-इन का चयन करें। वैकल्पिक रूप से, बस इसे सहेजें और एक्सएक्स से .xla
  5. एक्सटेंशन का नाम बदलें या तो अपने उपयोगकर्ताओं को उस .xla को "खोलें" या अपनी परियोजनाओं में संदर्भित करने के लिए सूचित करें, या इसे ऑटोस्टार्ट फ़ोल्डर में डालें या ....
  6. आप इसे एक पासवर्ड से सुरक्षित XLA को बदलने और कोड मुश्किल होता द्वारा

http://www.ozgrid.com/VBA/excel-add-in-create.htm
http://excel.tips.net/Pages/T002927_Creating_AddIns.html
http://msdn.microsoft.com/en-us/library/aa140936(v=office.10).aspx

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