2011-01-20 48 views
2

我正在寫一個小型的python腳本來跟蹤我如何在程序之間劃分我的時間。它需要檢測當前活動窗口(理想情況下,控制該窗口的應用程序,但我可以僅使用窗口標題)以及空閒時間。用KDE檢測python中的活動窗口

目前,我使用KIdleTime來確定我一直沒有觸摸我的電腦多久,它本身工作正常。

我也嘗試使用wnck來確定哪些窗口是活動的,並且再一次地,它自己工作正常。

這是當我試圖將兩者合併爲一個程序時遇到麻煩。由於wnck是一個gnome庫,而KIdleTime是一個KDE庫,因此它們需要在其自己的線程上運行,以便觸發窗口更改和空閒超時信號。

我很難找到一種方法在python中執行此操作 - 如果我使用線程模塊嘗試在單獨的線程上運行其中的一個,KDE庫會抱怨它不在主線程中,或者侏儒圖書館有一個令人印象深刻的崩潰和吃它可以得到的所有內存(順便說一句,ulimit是非常有用的,在這種情況下,我可以推薦它)。

所以,我有四個選項:

  1. 查找KDE庫時,改變窗口,可以檢測 - 我會 想到DBUS會暴露 這KWin的,但它不似乎 到。
  2. 查找在同一個 時間運行kde和gnome庫的方法。
  3. 查找在Gnome事件線程上運行的KIdleTime的等效項。
  4. 使用定時器從Gnome線程中輪詢KIdleTime(這是我現在正在做的 ,但遠非理想,它會導致確定空閒時間的不精確性) 。

任何人都可以爲我提供解決方案嗎?

回答