2009-07-16 12 views
5

मैं CreateDC(L"DISPLAY",NULL,NULL,NULL) के साथ प्राप्त डीसी के साथ एक बड़ा खेल रहा हूं और मैं सोच रहा हूं कि खिड़कियां आपको पूरी स्क्रीन पर आसानी से क्यों आकर्षित करती हैं, क्योंकि मुझे लगता है कि आप कुछ सुंदर बुराई कर सकते हैं जैसे कि टाइमर डालना 1 एमएम पर और टाइमर टिकने पर हर बार पूरी स्क्रीन पर एक काला आयताकार ड्राइंग।विंडोज़ आपको पूरी स्क्रीन पर क्यों आकर्षित करती है?

उत्तर

31

तथ्य यह है कि आप कुछ सुंदर बुराई सामान कर सकते हैं इसका मतलब यह नहीं है कि खिड़कियों को आपको ऐसा करने नहीं देना चाहिए। बस उन सभी अन्य बुरी चीजों के बारे में सोचें जो आप कर सकते हैं:

  • एक अनंत लूप में चलाएं और सभी सीपीयू समय खाएं।
  • जब तक आप पूरी हार्ड डिस्क भर नहीं लेते तब तक फ़ाइल में यादृच्छिक बिट्स लिखें।
  • जगह पर यादृच्छिक फ़ाइलों को हटाएं।
  • जब तक कंप्यूटर क्रॉल में धीमा नहीं हो जाता तब तक पागल की तरह स्मृति आवंटित करें।

सिर्फ इसलिए कि आप उन चीजों को कर सकते हैं इसका मतलब यह नहीं है कि खिड़कियों को आपको हार्ड ड्राइव पर लिखने या स्मृति आवंटित करने या फ़ाइलों को हटाने से रोकना चाहिए।

विंडोज का उद्देश्य पर्यावरण प्रदान करना है जिसमें कार्यक्रम चल सकते हैं। जितना अधिक लचीला वे पर्यावरण बनाते हैं, उतना ही दिलचस्प (और, दुर्भाग्य से, कुटिल) कार्यक्रम डेवलपर्स के लिए यह संभव बनाता है।

अगर वे आप क्या कर सकते हैं क्योंकि आप इसे दुरुपयोग हो सकता है ... अच्छी तरह से है, तो यह विंडोज़ नहीं होगा, यह होगा एक iPhone :)

+5

ओएस का उद्देश्य सिस्टम के संसाधनों का प्रबंधन करना है। स्क्रीन उन संसाधनों में से एक है। ओएस अन्य प्रक्रियाओं के संसाधनों के लिए क्या कर सकता है इस पर सीमा निर्धारित करता है (उदाहरण के लिए, आप आम तौर पर किसी अन्य प्रक्रिया के पता स्थान को स्पर्श नहीं कर सकते हैं)। ओएस गारंटी देता है कि, यदि आपके पास अनंत लूप भी है, तो अन्य प्रक्रियाओं को सीपीयू समय निर्धारित किया जाएगा। ओएस डिस्क कोटा और एक्सेस विशेषाधिकारों को लागू कर सकता है। कार्य सेट सीमाएं आपको सभी भौतिक RAM का उपयोग करने से रोकती हैं। यूआई स्तर पर भी, विंडोज फोकस चोरी करने से ऐप्स को सीमित करता है। तो स्क्रीन पर ऐप्स कहां स्क्रिप कर सकते हैं प्रतिबंधित क्यों नहीं? –

+0

@ एड्रियन - क्योंकि यह ओएस के साथ आप क्या कर सकते हैं कृत्रिम सीमा रखेंगे। उदाहरण के लिए, जिंग जैसे विजेट बनाना जो सभी विंडोज़ पर स्क्रीन के शीर्ष पर तैरता है असंभव होगा। –

10

विंडोज़ आपको हार्ड ड्राइव पर इतनी आसानी से क्यों लिखने देती है?

आप हार्ड ड्राइव पर प्रत्येक फ़ाइल को ओवरराइट करने जैसी कुछ सुंदर बुरा चीजें कर सकते हैं।

4

कि क्योंकि यह होना चाहिए पर मनमाने प्रतिबन्ध में डालने शुरू कर दिया आसान।

यह इतना आसान है क्योंकि नियमों और नियंत्रणों को जगह में रखना मतलब यह होगा कि आप उन चीज़ों को काट लेंगे जो आप भाषा और विंडोज ढांचे के साथ कर सकते हैं। यदि ऐसा हुआ तो बाड़ के दूसरी तरफ से चीखें चिल्लाती हैं कि आप यह कैसे कर सकते हैं और वह नहीं।

यह क्षमताएं हैं जो भाषा को शक्तिशाली बनाती हैं, लेकिन उस शक्ति के साथ खतरा आता है। सिर्फ इसलिए कि आप कुछ कर सकते हैं, इसका मतलब यह नहीं है कि आपको चाहिए। आप हार्ड ड्राइव को प्रारूपित कर सकते हैं ... इसका मतलब यह नहीं है कि जब आप घड़ी एप्लिकेशन लॉन्च करते हैं तो आपको यह करना चाहिए।

आप 'जिम्मेदारी' के इस स्तर के साथ खुश नहीं कर रहे हैं तो एक अलग भाषा या ढांचे में लिखने के लिए चुनें।

3

सब कुछ एक खिड़की है और हर खिड़की एक हैंडल है। इसलिए, यदि आपके पास DesktopHandle है, तो आप उस पर कुछ भी आकर्षित कर सकते हैं। इसके साथ समस्या क्या है।

Offcourse, अनुप्रयोग है कि बुराई सामान कर रही है (जैसे आप ने कहा) खुद के द्वारा मशीन पर चलने की अनुमति दी गई है, इसलिए, यह अधिक eviler सामान इस तरह के की तुलना में अपने हार्ड ड्राइव आदि स्वरूपण

के रूप में कर सकते हैं
7

डेस्कटॉप की सुरक्षा डेस्कटॉप पर चलने वाले उपयोगकर्ता को दी जाती है, यदि आप एक विशेषाधिकार प्राप्त उपयोगकर्ता नहीं हैं तो आप उस पर आकर्षित नहीं कर सकते हैं।

ध्यान दें कि डेस्कटॉप पर आमतौर पर CreateDC() नहीं होता है, लेकिन आमतौर पर WM_PAINT संदेश हैंडलर के दौरान किसी विशेष विंडो के लिए GetDC()।

एक प्रोग्राम फ़ाइल सिस्टम को भी हटा सकता है, या रजिस्ट्री को नष्ट कर सकता है (यदि उपयुक्त रूप से अनुमति दी जाती है), डेस्कटॉप किसी अन्य की तरह उपयोगकर्ता द्वारा अनुमत संसाधन है। अगर वे अपने सुरक्षा प्रमाण-पत्रों के साथ एक आवेदन चलाते हैं, तो वे अपनी इच्छानुसार काम कर सकते हैं।

हालांकि व्यवहार में, कोई खिड़की बनायेगा और इसके अंदर पेंट करेगा।

2

यदि आप जिस विधि का उपयोग कर रहे हैं (स्क्रीन डीसी प्राप्त करना) अक्षम किया गया था, तो यह लोगों को निम्नलिखित करने से नहीं रोकेगा।

आप एक विंडो बना सकते हैं, आप खिड़की में पेंट कर सकते हैं, आप पूरे स्क्रीन को कवर करने के लिए विंडो का आकार सेट कर सकते हैं, इसलिए आप पूरी स्क्रीन पर पेंट कर सकते हैं।

और आप पूरी स्क्रीन का बिटमैप ले सकते हैं, ताकि आप विंडो में अंतर्निहित स्क्रीन सामग्री पेंट कर सकें और फिर समायोजन कर सकें।

तो चीजों के संयोजन का उपयोग करके उसी प्रभाव को अनुकरण करना बहुत आसान होगा, जो स्वयं, पूरी तरह से मान्य और बेहद उपयोगी हैं।

+0

"आप पूरी स्क्रीन का बिटमैप ले सकते हैं" ... यह भी एक ऑपरेशन है जिसे अविश्वसनीय ऐप्स से इनकार किया जाना चाहिए। –

1

क्योंकि ऐसा समय हो सकता है जब आपको इन चीजों को करने की आवश्यकता हो। मुझे यकीन है कि इस समय आप किसी के बारे में नहीं सोच सकते लेकिन स्क्रीन पर लिखना उपयोगी हो सकता है।

ओएस एक्स पर स्क्रीन पर सीधे लिखने वाले कई एप्लिकेशन हैं। उपयोगी जानकारी जैसे सीपीयू समय या यहां तक ​​कि एक कैलेंडर भी। यह अच्छा है!

लेकिन ऐसा नहीं किया जा सकता है जो कुछ भी किया जा सकता है।

-3

विंडोज़ मैलवेयर से इतने प्रभावित होने वाले प्राथमिक कारणों में से एक है जैसा कि आप वर्णन करते हैं, ऐसी चीजों के आसपास सुरक्षा की कमी है। अन्य ने हार्ड ड्राइव भरने, यादृच्छिक फाइलों को मिटाने, या सीपीयू समय खाने जैसे उदाहरणों का हवाला दिया है ... इन सभी चीजों में सुरक्षा चिंताएं हैं, और उन सभी को अन्य दो प्रमुख ऑपरेटिंग सिस्टम (लिनक्स और ओएसएक्स) द्वारा रोका जाता है। इसका मतलब यह नहीं है कि आप उन ऑपरेटिंग सिस्टम पर समान चीजें नहीं कर सकते हैं, लेकिन इसका मतलब है कि एक सामान्य उपयोगकर्ता इसे नहीं कर सकता है। उन्हें सही अनुमतियां दी जानी होंगी, और आम तौर पर वे जो भी कर सकते हैं उसे सीमित करने के लिए एक बहुत ही सीमित एपीआई का उपयोग करने के लिए मजबूर होना पड़ता है। तो आपके प्रश्न का उत्तर "क्योंकि यह सुरक्षा के साथ दिमाग में डिजाइन नहीं किया गया था"। यह प्रोग्रामर को अधिक लचीलापन की अनुमति देता है, और इन शक्तियों का उपयोग अच्छा के लिए किया जा सकता है, लेकिन आईएमएचओ यह अक्सर आलस्य पैदा करता है (लोग कुछ करने के लिए "सही" तरीका ढूंढने के समय को खर्च करने के बजाय क्रूर बल का उपयोग करते हैं) और दरवाजा खोलता है सुरक्षा समस्याओं (मैलवेयर) के लिए।

+3

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

+0

@Zan: एक आधुनिक विंडोज, जैसे कि सर्वर 2k8, सभी अद्यतनों के साथ लागू, और यूएसी का उचित उपयोग, _might_ एक उचित रूप से कॉन्फ़िगर किए गए लिनक्स सिस्टम द्वारा प्रदान की गई सुरक्षा से संपर्क करें। लेकिन यह लगभग अभ्यास में कभी नहीं किया गया है। – rmeador

+3

तथाकथित मैलवेयर दुःख का मुख्य कारण यह है कि लोग प्रशासनिक खातों पर बैठते हैं - यही वह है। इसके अलावा, अधिक लोकप्रिय मंच, अधिक क्रैपी प्रोग्रामर इस पर अपने "सॉफ़्टवेयर" को लक्षित करते हैं, इसलिए उनके बीच स्पष्ट आलस्य। आप रूट खाते के साथ लिनक्स में लगभग पूरे '/' (या कम से कम '/ etc') को हटा सकते हैं। क्या यह आपके लिए भी एक सुरक्षा चिंता है? – macbirdie

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