2011-11-04 19 views
10

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

समस्या यह है कि एक बार में, सिस्टम पॉप-अप लाता है जैसे "आपका विंडोज सिस्टम अपग्रेड के लिए तैयार है।" या "कृपया अपने नॉर्टन सदस्यता को नवीनीकृत करें" आदि जिसे उपयोगकर्ता को समय-समय पर और मैन्युअल रूप से निकालना पड़ता है।

क्या उन चेतावनियों से परेशान किए बिना सामग्री पूर्ण स्क्रीन प्रदर्शित करने का कोई तरीका है?

+4

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

+5

लॉल, मुझे नहीं पता था कि "मदरबोर्ड आग पर है" अधिसूचना – Randomblue

+5

आप इसे एक झटका मशाल के साथ परीक्षण कर सकते हैं। –

उत्तर

13

याहू, चाहे विकास समुदाय सहमत हो या नहीं, माइक्रोसॉफ्ट के पास कई मानकों हैं कि मॉनीटर का विशेष उपयोग करने के लिए कब और क्यों स्वीकार्य हो सकता है।

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

यदि डायरेक्टएक्स कोई विकल्प नहीं है, तो वहां बड़ी संख्या में हैक उपलब्ध हैं जो सभी विंडोज ऑपरेटिंग सिस्टम की विभिन्न पीढ़ियों के बीच अलग-अलग व्यवहार करते हैं। इसलिए आपको प्रत्येक ओएस को कवर करने के लिए कई तकनीकों को लागू करने के लिए तैयार रहना पड़ सकता है।

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

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

एक निरंतर BringWindowToTop() आपको आगे रखने के लिए कॉल बेहतर है (यह अन्य सॉफ़्टवेयर को तोड़ता नहीं है) लेकिन फिर भी थोड़ा हैक-आश।

7

वैश्विक हुक के साथ विंडो निर्माण संदेश पकड़ें। इस तरह आप दृश्यमान होने से पहले अवांछित विंडो को बंद या छुपा सकते हैं।

संपादित करें: यदि आप निश्चित रूप से हुक से बचना चाहते हैं, तो आप समय-समय पर एक फ़ंक्शन को कॉल कर सकते हैं, जो आपकी विंडो को जेड-स्टैक के शीर्ष पर रखता है।

+1

मुझे लगता है कि इस प्रकार का हुक थोड़ा अधिक है ...: एस –

+1

मुझे कुछ साल पहले एक ही समस्या थी, और कोई आसान तरीका नहीं मिला। यह विशेष रूप से बदसूरत है कि आपको वैश्विक हुक के कोड के लिए डीएलएल का उपयोग करना होगा। – kol

4

आप सिस्टम अपडेट http://support.microsoft.com/kb/901037 अक्षम कर सकते हैं और Norton मैलवेयर को हटा सकते हैं।

आप दूसरी स्क्रीन भी कनेक्ट कर सकते हैं ताकि बुलबुले पहले मॉनिटर में दिखाई दे सकें।

या आप लिनक्स या विंडोज सीई के लिए इसे फिर से लिखते हैं।

एक अंतिम विकल्प सॉफ्टवेयर है कि एक काउंटर http://shop.inteset.com/Products/9-securelockdown.aspx

3

आप कुंजीपटल या माउस इनपुट की जरूरत नहीं है में अपने ओएस reconfigures स्थापित करने के लिए है, कैसे एक screensaver के रूप में अपने आवेदन चलाने के बारे में?

3

विंडोज एक्सप्लोरर द्वारा कई खोए गए संदेशों को ट्रिगर/प्रबंधित किया जाता है। बस इसे अपने डमी सी #/विनफॉर्म के साथ बदलें। रजिस्ट्री मान

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] 
"Shell"="Explorer.exe" 

आप तरह से सभी खिड़कियां आधारित (एम्बेडेड) प्रणाली (एटीएम & सह) करते हैं यही कारण है कि Explorer.exe के विकल्प के रूप वस्तुतः किसी भी exe निर्दिष्ट कर सकते हैं बदल कर। अभी भी कुछ समायोजन है (उन सेवाओं को अक्षम करें जिन्हें आपको वॉसन & अन्य लोगों की आवश्यकता नहीं है), और निश्चित रूप से, आप एक "restart explore.exe" बैकडोर रखना चाहते हैं। लेकिन यह एक अच्छी शुरुआत है

+0

इस तरह से जाकर, आपको सीधे माइक्रोसॉफ्ट से विशिष्ट और कुशल समर्थन मिलेगा (यदि आपको आवश्यकता हो), और अधिकतर, जिसमें किसी भी गंदे हैक शामिल नहीं हैं। – 131

+0

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

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