频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用 DCOP 连接 KDE 应用程序

来源:qqread 作者: 出处:巧巧读书 2006-12-29 进入讨论组

KDE 控制台 DCOP 客户机 -- dcop


命令行工具“dcop”本质上与 kdcop 是相同的,但是它是在命令行中使用。因此,它对于编写脚本来说更为有用。

做一点说明,从现在起,小写的 dcop 表示命令行工具,大写的 DCOP 表示泛泛的 DCOP 体系结构。

让我们来举出一些例子,看看您可以用 dcop 工具来做哪些事情。

例 3. 加载 developerWorks
与前面一样,Konqueror 进程在 dcop 中显示为“konqueror-NNNNN”,其中 NNNNN 是 pid(进程 ID)。

幸好,dcop 支持通配符,因此下面的命令,

dcop konq*

将显示出所有以“konq”打头的活动的 dcop 客户机。

Unix 惯例,我们可以与 head 命令组合使用,只得到第一个结果,如下:

dcop konq* | head -1

这将只输出一个“konqueror-NNNNN”(或者如果没有 Konqueror 进程在运行则什么也不输出)。

最后我们希望将这个惟一的“konqueror-NNNNN”传递给 dcop,并调用适当的函数来打开一个 URL -- 在 bash 中我们只需要借助 ` 字符就可以做到这一点,如下:

dcop `dcop konq* | head -1` konqueror-mainwindow#1 openURL www.ibm.com/developerWorks


图 4. 甚至可以为调用您喜爱的 Web 站点的命令行起一个别名
用 DCOP 连接 KDE 应用程序(图四)

如果您以前没有这样用过,那么告诉您,在 `字符间包括一些内容是表示先执行 `字符之间的命令,并用结果替换 ` 字符间的内容。因此命令

dcop `dcop konq* | head -1` konqueror-mainwindow#1 openURL www.ibm.com/developerWorks

将首先执行 `dcop konq* | head -1` 部分,我们得到的是

dcop konqueor-NNNNN konqueror-mainwindow#1 openURL www.ibm.com/developerWorks

接下来就可以正常执行,并给出我们期望的结果。

例 4. 使其全屏
在这个例子中,开始我们先启动一个新的 Konqueror 实例:

konqueror &

然后我们让它加载 developerWorks:

dcop konqueror-$! konqueror-mainwindow#1 openURL www.ibm.com/developerWorks

在 bash 中, $! 被 shell 自动替换为在后台启动的最后一个进程的 PID,这样,这个命令将改变我们刚刚启动的 Konqueror 应用程序的 URL。

最后,我们想让 Konqueror 全屏;这稍微复杂一些。

对 kdcop 的一个短期调查显示,这里有一些看起来有趣的函数可能会有帮助。

konqueror-mainwindow#1 接口有一个 actions() 函数;执行这个函数我们会得到 action() 函数所有可用参数一个列表。查看这个列表,我们会看到其中有一个操作叫 做 fullscreen 。到现在为止,一切还都不错 -- 不过在 kdcop 中调用 action() 函数并将 fullscreen 作为参数传递给这个函数,会返回一个错误。看一下 action() 函数的函数原型就会明白,它返回的是一个 DCOPRef 类型。不幸的是,kdcop 不能正确地显示这些返回类型。

不过这没关系;我们可以用 dcop 完成同样的事情:

dcop konqueror-$! konqueror-mainwindow#1 action fullscreen

这将返回

DCOPRef(konqueror-NNNNN,konqueror-mainwindow#1/action/fullscreen)

我们可以将这个返回值传递到 dcop 的另一个实例(还是借助方便的 ` 字符):

dcop `dcop konqueror-$! konqueror-mainwindow#1 action fullscreen`

这会向我们给出可用函数的一个列表,其中 activate 看起来最像是我们要找的。让我们来试试:

dcop `dcop konqueror-$! konqueror-mainwindow#1 action fullscreen` activate

就是那样,Konqueror 进入了全屏模式。

最终的脚本如下所示:

konqueror &
dcop konqueror-$! konqueror-mainwindow#1 openURL www.ibm.com/developerWorks
dcop `dcop konqueror-$! konqueror-mainwindow#1 action fullscreen` activate

注意,要退出全屏模式,您只需要右击 Konqueror 并在弹出的菜单中选择“Exit Full-Screen Mode”。

 

转载保留:http://www.qqread.com/net-manage/d290873.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章