2013-02-10 46 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()