2013-02-10 35 views
1

我在Mac OSX(10.8.2)上,並且只在Skype窗口最小化時嘗試使用Skype4py發送消息來響應傳入消息。Skype4Py無法確定窗口狀態

,我已經設置了代碼基本如下:

s = Skype4Py.Skype() 
c = s.Client 
if not c.IsRunning: 
    c.Start() 
s.FriendlyName = "AR" 
s.Attach() 

好吧......這是非常基本的,使完整意義上的,對不對?我的問題是,我試圖檢查,看看窗口是否關閉...雖然http://skype4py.sourceforge.net/doc/html/Skype4Py.client.Client-class.html列表IsRunningWindowState在同一個地方...不管如何格式化或試圖放棄它,我無法得到任何參考c.WindowState工作。

他們都產生一個Skype4Py.errors.SkypeError: [Errno 7] GET: invalid WHAT ...這是一個完全陌生的錯誤代碼給我。

+0

你確定你可以改變任何屬性已連接的客戶端之前?打開調試日誌記錄並獲取Skype API協議轉儲的跟蹤信息,以便查看導致無效GET的原因以及調試問題的更多信息。 Skype API參考在這裏https://developer.skype.com/desktop-api-reference – 2013-02-13 13:38:41

+0

運行s.Attach()後,我試圖把引用c.WindowState。只是爲了測試它,我通常只是試圖打印它「打印c.WindowState」或將其設置爲一個變量。我已經測試了上面編寫的代碼,並且它可以工作,包括如果客戶端尚未啓動,則啓動te客戶端。之後我還有其他代碼向人們發送消息,並且只要我註釋掉所有對c.WindowState的引用,就可以正確地顯示消息。您發送的鏈接包含Skype桌面API的編碼示例和信息。由於我使用Skype4Py,編碼示例看起來毫無用處。 – user2042859 2013-02-13 22:40:36

+0

Skype4Py內部使用Skype桌面API。所以你的錯誤代碼和情況應該在該文檔中描述。請嘗試增加日誌級別以進一步調試問題。 – 2013-02-14 15:02:44

回答

0

對不起,我不會說英文! :)

窗口狀態打印出來:print 'client: ' + str(skype.Client.WindowState)

Window state 
    wndUnknown = 'UNKNOWN' 
    wndNormal = 'NORMAL' 
    wndMinimized = 'MINIMIZED' 
    wndMaximized = 'MAXIMIZED' 
    wndHidden = 'HIDDEN' 

用法:

s = Skype4Py.Skype() 
c = s.Client 
if not c.IsRunning: 
    c.Start() 
if (c.WindowState == Skype4Py.wndUnknown) | (c.WindowState == Skype4Py.wndHidden): 
    # kill the skype with shell (killall -9 skype) 
    c.Start() 
s.FriendlyName = "AR" 
s.Attach()