如何在linux/tcl/python中监控正在打开或启动的应用程序?

2024-09-29 23:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个面板应用程序,类似于avant window navigator或UbuntuUnity。在

我的问题是,一旦我用预先定义好的应用程序构建了面板,当应用程序打开或启动时,如何向面板添加项目?在

下面是我在tcl中的源代码:

package require Tk

set items {xterm gvim firefox}
wm withdraw .
toplevel .panel
wm attributes .panel -topmost 1 ; # on top
bind .panel <Escape> {exit}
wm geometry .panel +0+0
wm overrideredirect .panel yes ; # remove window decorations

set counter 0
foreach item $items {
    incr counter
    set separator " "
    label .panel.$counter -text "$item$separator" -bg black -fg white \
    -font {-family "Fixedsys Excelsior 3.01" -size 12}
    grid .panel.$counter -column $counter -row 0
}

有没有终端、tcl或python命令可以实现这一点?在

欣赏任何见解。提前谢谢你。在


Tags: 应用程序navigator面板定义counteritemswindowitem
1条回答
网友
1楼 · 发布于 2024-09-29 23:23:55

如果send命令被打开(这取决于与显示器安全性相关的各种因素),您可以告诉它监听一个“众所周知的名字”,然后让另一个小应用使用send来分派一个脚本来计算。在

在小组中,听一个“好”的名字:

package require Tk
tk appname MyExcellentPanel
proc registerItem args {
   # How to do the registration of things here
}

在助手脚本中:

^{pr2}$

现在您可以使用shell脚本中的小脚本,或者在任何地方向面板发送一条指令来注册某个内容。就这么简单。在


如果send命令不存在,请尝试Tcllib中的comm包,并使用comm::comm send作为send的近似等价物。但是,这与tk appname完全不同,因为没有可移植的方法来进行端口映射的注册(comm使用本地TCP通道),所以您需要找到一种方法来传递这些信息(在一个著名的地方有一个文件吗?)。唉,我对它不是很有经验,所以我不能给出详细的建议。在

相关问题 更多 >

    热门问题