2012-11-30 87 views
5

我的python應用程序啓動一個創建pyglet窗口的子進程。當pyglet窗口打開時,它位於所有其他窗口的前面,並且需要鍵盤焦點。 我想讓我的pyglet窗口在後臺打開,而不是焦點。這可能嗎?打開pyglet窗口而不關注

我正在使用的代碼的

精簡版本:有差別

import pyglet 

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

我使用Windows 7,萬一..

+0

給予第二個想法,你確實有一個奇怪的例子,彈出pyglet窗口w/o給它輸入。也許你實際上需要學習如何在你更大的應用程序中嵌入pyglet applet的OpenGL上下文? –

回答

1

倒車焦點是OS具體:

pyglet不提供OS特定的窗口控制。因此,您很可能不得不使用臨時技巧來快速執行&髒解決方案,或嘗試使用Windows API和/或COM等擴展名來訪問它,以通過任務欄應用程序堆棧列出反向竊取焦點。您也可以嘗試首先創建您自己的窗口(容器 - 您可以操作) - 以將其上下文委託給pyglet。

推遲,如果按照您的程序邏輯的焦點

在另一方面偷你只是想耽誤你的應用程序的實際表現可以用知名度玩:

import pyglet 

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

所以,如果你不想玩與窗口上下文的委託,你可能可以做到以下幾點:

  1. 開始你的應用程序不顯示荷蘭國際集團的窗口
  2. 通過獲取其手柄/ ID查找當前活動窗口的焦點
  3. 顯示你的窗口
  4. 回饋

上述假設與Windows API的工作重點上一窗口。我認爲MSDN有關於改變焦點的例子。如果你知道當前窗口的PID(主應用程序),這應該簡化步驟2.