2009-12-11 10 views
7

हर विंडोज डेवलपर सभी फार्म की एक चेतावनी के साथ भी परिचित है:मैं कैसे अनुकूलित कर सकता हूं "% s को एक समस्या का सामना करना पड़ा है और उसे बंद करने की आवश्यकता है"?

Foo.exe कोई समस्या हुई है और उसे बंद होना होगा।

मैं (केवल पाठ्यक्रम के विकास के दौरान) मेरी क्षुधा समय-समय पर उड़ा करने के लिए इस्तीफा दे दिया है, लेकिन जब वे करते हैं, मैं देखने के लिए "Foo.exe" यहाँ नहीं करना चाहती। मैं "दोस्ताना" नाम जैसे "FooBrowser ™" देखना चाहता हूं।

मैं MSDN प्रलेखीकरण उच्च और निम्न एक तरह से इस स्ट्रिंग को ओवरराइड करने के लिए खोज की है और इसे नहीं मिला। और मैंने यह देखने के लिए कई प्रयोग किए हैं कि क्या मैं किसी भी किस्मत के बिना तंत्र में ठोकर खा सकता हूं। हालांकि, जब मैं "किसी समस्या का सामना कर रहा हूं और उसे बंद करने की आवश्यकता है" के लिए वेब पर खोज करता हूं, तो मुझे लगता है कि बहुत से लोग दोस्ताना नाम से पहले के उदाहरणों पर चर्चा करते हैं, और मुझे संदेह है कि वे सभी अपनी संपूर्ण अलर्ट को अपने साथ बदल रहे हैं। :-)

मुझे मूल Win32 अनुप्रयोगों के लिए काम करने की आवश्यकता है; .NET एक विकल्प नहीं है। वेब पर चर्चा किए गए उदाहरणों के सेट में माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर (एक मूल ऐप) और माइक्रोसॉफ्ट वर्क्स शामिल हैं (जो मुझे लगता है कि अभी भी एक मूल ऐप है हालांकि यह चार ईन्स रहा है क्योंकि मैंने इसे देखा है)।

गुप्त हैंडशेक क्या है?

उत्तर

4

मैं बिल्कुल यकीन नहीं है विंडोज के किस संस्करण को लक्षित कर रहे हैं, लेकिन नए लोगों के अनुकूल उत्पाद नाम का उपयोग करने के लिए जब आप दुर्घटना की कोशिश करेंगे।

करें कि आप अपने निष्पादन के लिए एक संस्करण संसाधन जोड़ने, और एक दोस्ताना उत्पाद नाम प्रदान करते हैं और फ़ाइल नाम, FileDescription स्ट्रिंग में बनाओ।

MSDN पर इस page अधिक जानकारी प्रदान करता है।

+0

मैंने संस्करण संसाधन में कई स्ट्रिंग्स की कोशिश की है और कोई भी वांछित प्रभाव नहीं प्रतीत होता है। साथ ही, स्ट्रिंग "माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर" अपने संस्करण संसाधन में कहीं भी नहीं दिखाई देता है, फिर भी यह स्ट्रिंग इसके क्रैश अलर्ट में दिखाई देती है (वेब ​​के अनुसार - मैंने इसे हाल ही में क्रैश नहीं देखा है)। –

+0

ओह, और मुझे XP 32 SP3 का समर्थन करने की आवश्यकता है। आप "दोस्ताना" नाम के लिए किस संस्करण स्ट्रिंग का उपयोग करने की उम्मीद करेंगे? यह पृष्ठ ऐसा प्रतीत नहीं होता है कि मुझे उनमें से किसी एक को काम करने की उम्मीद करनी चाहिए: http://msdn.microsoft.com/en-us/library/ms646987(VS.85).aspx –

+0

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

0

क्या आप एक साधारण स्ट्रिंग संसाधन नहीं बना सकते हैं जिसमें आपके एप्लिकेशन का मित्रवत नाम शामिल है और संदेश स्वरूपित करते समय इसका उपयोग करें?

आपको क्या लगता है?

उम्मीद है कि यह मदद करता है, सर्वश्रेष्ठ संबंध, टॉम।

+0

यह संदेश मेरे ऐप द्वारा पोस्ट नहीं किया गया है; यह विंडोज द्वारा पोस्ट किया जाता है। मेरा कोड नियंत्रण में नहीं है। –

+0

@ इंटेगर कवि: क्या आपने एप्लिकेशन के शॉर्टकट लिंक का प्रयास किया है? मैं एक परिचित नाम के साथ एक शॉर्टकट मदद नहीं करता है बनाना इस पर पैर में खुद को शूटिंग कर रहा हूँ और उस पर एक लंबे पॉट शॉट ले ... :( – t0mm13b

+0

। IShellLink एक शॉर्टकट वर्णन जो काम का हो सकता का समर्थन करता है।यह सैद्धांतिक रूप से संभव है कि विवरण के साथ शॉर्टकट खोलने के लिए विंडोज एक्सप्लोरर से पूछने से प्रक्रिया के अनुकूल नाम को सेट करने के लिए कुछ अनियंत्रित इंटरफेस का उपयोग होगा, लेकिन मुझे शक है। मेरे संदेह के बावजूद जांच के लायक हो सकता है, सिवाय इसके कि मेरे पास विंडोज एक्सप्लोरर को शॉर्टकट्स के माध्यम से अप्रत्यक्ष करके प्रक्रियाओं को लॉन्च करने का विकल्प नहीं है क्योंकि मेरे पास पहले से मौजूद कोड है जिसे मैं CreateProcess को कॉल नहीं कर सकता। –

1

क्यों नहीं सिर्फ अपने आवेदन निष्पादन योग्य FooBrowser™.exe नाम बदलने?

+0

बहुत सारे अन्य कार्यक्रम EXE फ़ाइल नाम पर निर्भर रहते हैं। –

+0

साथ ही, ".exe" समस्या का हिस्सा है। –

1

हम्म। मुझे नहीं पता कि यह निश्चित रूप से क्या करेगा, लेकिन यह एक कोशिश के लायक है। SetCurrentProcessExplicitAppUserModelID

+0

असंबद्ध लग रहा है। –

+0

उस एपीआई का उपयोग यह नियंत्रित करने के लिए किया जाता है कि टास्कबार पर विंडोज़ को एक साथ कैसे समूहीकृत किया जाता है (एक ही प्रक्रिया से विंडोज़ के लिए अलग-अलग टास्कबार आइटम या एकाधिक प्रक्रियाओं के लिए एक टास्कबार आइटम।) – Michael

2

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

बस एक अलग नजरिए :)

+0

एसईएच __ कैच कुछ है जो मैं सोच रहा हूं, इसलिए यह पुष्टि करने के लिए धन्यवाद एक व्यवहार्य दृष्टिकोण। –

+0

ध्यान दें कि क्रैश प्रक्रिया के संदर्भ में कोड चलाने के लिए जोखिम भरा है। आप अपने ऐप से क्रैश डेटा प्राप्त करने के लिए एमएस के साथ पंजीकरण कर सकते हैं जो उपयोगकर्ता भेजते हैं। – Michael

+0

@ माइकल - संभवतः जोखिम भरा, हाँ। मैं ज्यादातर सी # में कोड करता हूं इसलिए मेरे पास कोशिश है ... मेरे आवेदन के चारों ओर पकड़ो। रुन()। अप्रबंधित ऐप्स थोड़ा अलग हो सकते हैं। एमएस के साथ पंजीकरण के लिए ... इसके बारे में पता नहीं था! –