2010-09-21 12 views
5

सबसे पहले, मुझे पता है अतः में एक इसी तरह phrased सवाल ही नहीं है, लेकिन यह ठीक से जवाब नहीं किया गया है, और यह चारों ओर चर्चा का सबसे पर्यत "आप shouldn गिर गया ऐसा नहीं कर रहे हैं "।कैसे प्रोग्राम के रूप में स्थानांतरित करने के लिए विंडोज़ टास्कबार (दो लेने के लिए)

तो मूल बातें करने से शुरू कर सकते हैं। इसकी आवश्यकता क्यों है।

मैं एक कंपनी है कि हमारे कर्मचारियों के लिए कुछ दर्जन गोली नेटबुक सौंप दिया पर काम करते हैं। जैसा कि आप जानते हैं, नेटबुक की अपेक्षाकृत कम संकल्प है, और स्क्रीन रीयल एस्टेट बहुत महत्वपूर्ण है।

जब हम टेबलेट मोड में नेटबुक घुमाने के लिए, हम उन्हें लिखने के लिए उपयोग करते हैं, और पोर्ट्रेट मोड भी बहुत कुछ है कि के लिए आरामदायक है। बात यह है कि, जब स्क्रीन घुमाया जाता है, तो टास्कबार परिदृश्य के समान सापेक्ष किनारे पर रहता है। यदि यह नीचे था, तो यह चित्र पर नीचे रहता है। लेकिन चूंकि हम पहले से ही परिदृश्य पर बाएं किनारे पर इसका उपयोग करते हैं, इसलिए हम उपलब्ध स्क्रीन के बहुत ध्यान देने योग्य प्रतिशत को टास्कबार के साथ समाप्त करते हैं।

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

क्या यह हासिल करने का कोई तरीका है? मैं वर्तमान में सी # का उपयोग कर रहा हूं, लेकिन यह एक निश्चित आवश्यकता नहीं है, मैं आसानी से सी ++ या वीबी से रूपांतरण प्राप्त कर सकता हूं, और पी/आवेषण डरावना नहीं हैं। मैं पहले से ही SHAppBarMessage की कोशिश की है, SETPOS के साथ, यह विंडोज़ 7. मैं MoveWindow और SetWindowPos pinvokes की कोशिश की है पर काम नहीं करता है, यह भी पर काम नहीं करते:

ऑपरेटिंग सिस्टम विंडोज़ 7

[संपादित है टास्कबार पर विंडोज 7। अन्य खिड़कियों के लिए यह ठीक काम करता है। और मुझे यकीन है कि मेरे पास सही हैंडल है, क्योंकि अगर मैं इसे छिपाने के लिए शोविंडो पिनवोक का उपयोग करता हूं, तो यह वास्तव में छुपाता है, हालांकि मैं किसी भी चीज़ के लिए अप्रयुक्त स्थान को पुनः प्राप्त नहीं कर सकता। इन विधियों XP पर काम किया है, यही कारण है कि इसकी तो निराशा होती है।]

आप अपने समय के लिए बहुत बहुत धन्यवाद, जोआओ Correia

+0

बेशर्म/टक्कर के लिए खेद है, लेकिन मैं अभी भी इस पर स्टम्प्ड रहा हूँ। मैं एक अलग दृष्टिकोण पर भी विचार कर रहा हूं। घूर्णन का पता लगाने के बाद पूरी तरह से टास्कबार को छुपाएं, और पीछे घूमते समय इसे फिर से दिखाएं। परंतु। भले ही मैं टास्कबार को छुपा सकूं, और स्टार्ट बटन "ओर्ब", मैं डेस्कटॉप क्षेत्र के लिए स्पेस पुनः प्राप्त नहीं कर सकता। यह हमेशा टास्कबार को उपस्थित होने के रूप में गिना जाता है, और खिड़कियों को अंतरिक्ष पर अधिकतम करने की अनुमति नहीं देता है। –

+0

हाय, बस आपको यह बताना चाहता था कि यह किया जा सकता है, मैंने बैच और vbscript में एक समाधान प्रकाशित किया है, इसलिए सी # भी संभव होना चाहिए, http://stackoverflow.com/questions/12435503/change-windows-7- टास्कबार-स्थान-स्वचालित-आधारित-ऑन-स्क्रीन-आकार-या-ऑन-डॉक/14370485 # 14370485 – peter

उत्तर

0

आप वर्ग के रूप में Shell_TrayWnd साथ FindWindow() की कोशिश की है, और फिर SetWindowPos का उपयोग खिड़की के लिए mvoe?

सुनिश्चित नहीं हैं कि विंडोज हालांकि इस ले जाएगा।

वहाँ भी साथ AppBar के (क्या टास्कबार है), बाहर की जाँच करने के लिए विशिष्ट API है:

http://bytes.com/topic/c-sharp/answers/247701-moving-windows-takbar

+1

हां, मैंने FindWindow और आपके द्वारा सुझाए गए तर्क की कोशिश की है, जो सिस्टम द्वारा अनदेखा किया जाता है। अगर मैं इसे किसी अन्य विंडो पर उपयोग करता हूं, तो यह काम करता है। टास्कबार इसे अनदेखा करता है। लिंक के सुझाव के लिए, मैंने उस सटीक कोड को आजमाया है। यह XP पर काम करता है, लेकिन 7 पर विफल रहता है, इसलिए इस प्रश्न की मेरी आवश्यकता है। –

+0

आह मैं देखता हूं, यह दिलचस्प है। – Lloyd