2012-11-30 20 views
5

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

कोड मैं उपयोग कर रहा हूँ की

छीन नीचे संस्करण:

import pyglet 

pyglet.window.Window() 
pyglet.app.run() 

मैं विंडोज 7 का उपयोग कर रहा हूँ, इस मामले में है कि एक फर्क नहीं पड़ता ..

+0

इसे दूसरा विचार देकर, आपके पास पिगलेट विंडो डब्ल्यू पॉप अप करने का एक अजीब मामला है/ओ इसे इनपुट दे रहा है। हो सकता है कि आपको वास्तव में सीखना होगा कि अपने बड़े एप्लिकेशन में पाइलेट एप्लेट के ओपनजीएल संदर्भ को कैसे एम्बेड किया जाए? –

उत्तर

1

पीछे फोकस ओएस विशिष्ट है:

pyglet ओएस विशिष्ट विंडो नियंत्रण प्रदान नहीं करता है। तो सबसे अधिक संभावना है कि आपको त्वरित & गंदे समाधानों के लिए विज्ञापन-प्रसार चाल का उपयोग करना होगा या फोकस चोरी करने के लिए टास्कबार अनुप्रयोगों के ढेर के माध्यम से सूचीबद्ध करने के लिए विंडोज एपीआई और/या COM का उपयोग करके pywin32 जैसे एक्सटेंशन के साथ संपर्क करने का प्रयास करना होगा। आप अपनी खुद की खिड़की (कंटेनर - जिसे आप जोड़ सकते हैं) बनाने की कोशिश भी कर सकते हैं - ताकि इसके संदर्भ को पिगलेट में सौंप सकें।

अपने कार्यक्रम तर्क के अनुसार यदि फोकस

दूसरी ओर की चोरी में देरी आप केवल आपके दृश्यता के साथ खेल सकते हैं आप आवेदन की वास्तविक दिखाने में देरी करना चाहते हैं:

import pyglet 

w = pyglet.window.Window() 
w.set_visible(False) 
pyglet.app.run() 

तो अगर आप विंडो संदर्भ के प्रतिनिधिमंडल के साथ खेलना नहीं चाहते हैं, आप शायद निम्न कार्य कर सकते हैं:

  1. अपना एप्लिकेशन w/o शो शुरू करें खिड़की
  2. अपने विंडो ing इसके हैंडल/आईडी हो रही द्वारा वर्तमान सक्रिय विंडो का ध्यान केंद्रित लगता है
  3. दिखाने
  4. वापस पिछली विंडो पर फोकस

ऊपर खिड़कियों एपीआई के साथ काम मानता देना । मुझे लगता है कि एमएसडीएन के पास फोकस बदलने पर उदाहरण थे .. यदि आप अपनी वर्तमान विंडो (मुख्य एप्लिकेशन) के पीआईडी ​​को जानते हैं तो इसे चरण 2 को सरल बनाना चाहिए।

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