[Comm] Закрыть окошко из коммандой строки

Alexander Dymo =?iso-8859-1?q?cloudtemple_=CE=C1_mksat=2Enet?=
Вт Окт 29 01:28:55 MSK 2002


> вся фишка в том, как получить идентификатор активного окна....
> причем ведь не все проги поддерживают dcop интерфейс :(
> Задача в том, чтобы АКТИВНОМУ (имеющему фокус ввода) приложения послать
> сигнал, аналогичный тому, который отсылает менеджер окон при нажатии кнопки
> закрыть...

Если все же с помощью dcop, то нахождение активного окна - примерно так:
#shell script
for name in `dcop`
do
    for name2 in `dcop $name | grep mainwindow`
    do
        echo $name `dcop $name $name2 isActiveWindow`
    done
done

А посылка команды минимизации активному окну:
for name in `dcop`
do
    for name2 in `dcop $name | grep mainwindow`
    do
        if [ `dcop $name $name2 isActiveWindow` = "true" ]; then
            dcop $name $name2 minimize
        fi
    done
done

Насчет закрытия активного окна с помощью dcop - затрудняюсь сказать.
Не все даже КДЕ-приложения поддерживают MainApplication-Interface.
Те, что поддерживают, закрываются сообщением
<appname> MainApplication-Interface quit

Но есть еще один метод:
xkill -id `dcop <appname> <appname>-mainwindow#<num> getWinID`

getWinID возвращает Х-идентификатор. 
Общаться с окнами по Х-id умеют xkill, xprop, xwininfo.

-- 
WBR, Alexander Dymo
Ukrainian State Maritime Technical University
cloudtemple на mskat.net
http://www.cloudtemple.mksat.net




Подробная информация о списке рассылки community