2012-05-26 21 views
6

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

वर्गीकरण: मुझे खिड़की खोलने और देखने योग्य/चयन करने योग्य होने की आवश्यकता है, बस आगे बढ़ने वाली हर चीज़ के शीर्ष पर कूद न करें। दूसरे शब्दों में, इसे पृष्ठभूमि में खोलने की जरूरत है, न कि खुद को अग्रभूमि में मजबूर करें।

उत्तर

3

यहाँ है कि कैसे मैं यह पिछले

# Hide the cmd prompt window 
startupinfo = subprocess.STARTUPINFO() 
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 
startupinfo.wShowWindow = subprocess.SW_HIDE 
p = subprocess.Popen(args, startupinfo=startupinfo) 
+0

टीएल; डीआर, 'startupinfo.wShowWindow = 4' का उपयोग करें (केवल विंडोज 7 पर परीक्षण किया गया) WShowWindow मान जाहिर तौर पर अधिक मूल्य ले सकता है बस subprocess.SW_HIDE। उपलब्ध मूल्य [शोविंडो] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548 (v = vs.85) .aspx के लिए विंडोज डॉक्स में दस्तावेज किए गए हैं)। प्रासंगिक मान SW_SHOWNOACTIVATE है, और उस enum के लिए मान 4 है। –

1

आप subprocess.call

यह नमूना के साथ झंडे की एक किस्म के साथ प्रक्रियाओं चला सकते हैं कोई यूआई के साथ सांत्वना एप्लिकेशन कार्यान्वित किया:

>>> import shlex, subprocess 
>>> subprocess.call("C:\Windows\some_console_app.exe", shell=True) 
संबंधित मुद्दे