作者bombilla (地板别打我!>"<)
看板LinuxDev
标题Re: [问题] skype 2.0.0.72-0medibuntu1
时间Sat Dec 20 12:21:54 2008
好吧~自己回一下自己的问题吧。
反正目前查完的结果是,想达到skype ap的single instance,
应该是只能用skype自己提供的API来达成,其它的xlib之类的都会被拦掉。
skype API目前只实作了dbus版本,xlib版本还在进行中。
1.送 NAME test
2.送 PROTOCOL
3.送 FOCUS 即可,就会看到缩到system tray的skype ap 弹回桌面。
只是以上仅限於已经有登号登录的skype ap。
就是如果只开一个skype ap 但不登入任何帐号的话,
在步骤一就会得到DISCONNECT的讯息,无法再由步骤二建立通讯。
reference:
https://developer.skype.com/Docs/ApiDoc
※ 引述《bombilla (地板别打我!>"<)》之铭言:
: 各位好,
: 我的问题是,有什麽方法可以【只执行一个skype application】。
: 就是single skype instance。不管我点几次图示去执行skype application,
: 都最多只会一个skype application的存在,不会再执行第二个skype。
: 步骤:
: 1.点skype图示启动一个skype。
: 2.再点skype图示,这时候它总是会跳出另一个skype。
: 但我不要有第二个skype跳出来,这时候我希望的动作是把先前的skype show
: 回到桌面上。
: 就像MSN那样,同一时间只会有一个MSN的存在,尽管使用者再去开始功能表里头
: 点了MSN的图示,系统也只是把原先已执行的MSN叫回到top level而已,而不会再
: 执行第二个MSN。
: 我试过以下的方式:
: 1.用libwnck去听window open signal,然後纪录下skype的xid,
: 然後企图在执行第二个skype时用之前存下的xid把之前的skype叫回来,
: 但是问题是如果我是按叉叉把skype缩到system tray的话,
: libwnck会认为skype已经关掉了!!
: 所以企图执行第二个skype的话就会成功了!!
: 2. 我用xid去找到GdkWindow, 然後再用gdk_window_deiconfy ()试图叫回来,
: 但这时候只会叫回类似skype画面的东西…感觉得出来是skype的画面,
: 但只是一半的画面…还是不能work!!
: 3. 我用xlib的API传送了一个"_NET_ACTIVE_WINDOW"的client message过去,
: 但还是没用,吐回来的都是没有错误。
: 我原本想说既然叫不回来,那就保证按到叉叉时不会缩到系统列,但是…
: 如果我去点系统列的小图示的时候,libwnck也会接到close window的event!!
: 这样我就不能用kill pid了!
: 想请问我还有什麽方向可以尝试的吗??
: 感谢各位的观看~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.145.112