projman/hlp/ru/tcl/send.html
2015-10-19 14:27:31 +04:00

95 lines
5.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<title>send</title>
<CENTER><h1>send</h1></CENTE>
<DIR><FONT face=Arial><FONT size=+1>Выполнить команду в другом
приложении.</FONT></FONT> <BR>&nbsp;
<LI><FONT face=Arial><FONT size=+1><A
href="tk.html#send СИНТАКСИС">Синтаксис</A></FONT></FONT>
<LI><FONT face=Arial><FONT size=+1><A
href="tk.html#send ОПИСАНИЕ">Описание</A></FONT></FONT>
<LI><FONT face=Arial><FONT size=+1><A
href="tk.html#send ИМЕНА ПРИЛОЖЕНИЙ">Имена
приложений</A></FONT></FONT>
<LI><FONT face=Arial><FONT size=+1><A
href="tk.html#send БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД">Блокировка
посылаемых команд</A></FONT></FONT>
<LI><FONT face=Arial><FONT size=+1><A
href="tk.html#send БЕЗОПАСНОСТЬ">Безопасность</A></FONT></FONT>
</LI></DIR><A name="send СИНТАКСИС"></A><B><FONT face=Arial><FONT
size=+1>СИНТАКСИС</FONT></FONT></B>
<DIR><FONT face=Arial><FONT size=+1><B>send</B> ?<I>параметры</I>? <I>прил
кмд</I> ?<I>арг арг ...</I>?</FONT></FONT></DIR><A
name="send ОПИСАНИЕ"></A><B><FONT face=Arial><FONT
size=+1>ОПИСАНИЕ</FONT></FONT></B>
<DIR><FONT size=+1>Обеспечивает выполнение команды, заданной параметром
<I>кмд</I> (с аргументами, заданными параметрами <I>арг</I>), в приложении
с именем <I>прил</I>. Возвращает результат выполненной команды или ошибку.
Аргумент <I>прил</I> может задавать имя любого из приложений, главное окно
которого расположено на том же дисплее, что и главное окно запрашивающего
приложения; запрошенное приложение не обязано управляться тем же
процессом. Если аргументы отсутствуют, то выполняемая команда полностью
определяется аргументом <I>кмд</I>. Если присутсвует один или несколько
аргументов, то они конкатенируются с <I>кмд</I> в точности так же, как и в
команде <B><FONT face=Arial><A
href="eval">eval</A></FONT>.</B></FONT>
<P><FONT face=Arial><FONT size=+1>Если первые аргументы команды начинаются
с дефиса "-", то они интерепретируются как параметры. В настоящее время
допустимы следующие параметры:</FONT></FONT>
<P><B><FONT face=Arial><FONT size=+1>-async</FONT></FONT></B>
<DIR>
<DIR><FONT face=Arial><FONT size=+1>Запрашивает асинхронный вызов. В этом
случае выполнение команды <B>send</B> завершается немедленно, не дожидаясь
завершения выполнения команды, заданной аргументом <I>кмд</I>, в
приложении-адресате; результат выполнения посланной команды или
возникающие при выполнении ошибки игнорируются. Если адресат управляется
тем же процессом, что и посылающее приложение, то параметр <B>-async</B>
игнорируется.</FONT></FONT></DIR></DIR><B><FONT size=+1><FONT
face=Arial>-displayof</FONT> </FONT></B><I><FONT face=Arial><FONT
size=+1>имяПути</FONT></FONT></I>
<DIR>
<DIR><I><FONT size=+1>Указывает на то, что главное окно
приложения-адресата должно быть на том же дисплее, что и окно, заданное
аргументом имяПути, а не на дисплее посылающего
приложения.</FONT></I></DIR></DIR><B><FONT face=Arial><FONT
size=+1>--</FONT></FONT></B>
<DIR>
<DIR><FONT face=Arial><FONT size=+1>Единственная задача этого параметра
завершить список параметров. Он используется только если значение
аргумента <I>прил</I> может начинаться с дефиса
"-".</FONT></FONT></DIR></DIR></DIR><A
name="send ИМЕНА ПРИЛОЖЕНИЙ"></A><B><FONT face=Arial><FONT size=+1>ИМЕНА
ПРИЛОЖЕНИЙ</FONT></FONT></B>
<DIR><FONT size=+1><FONT face=Arial>Первоначально имя приложения
определяется именем программы или скрипта, его создающего. Имя приложения
можно узнать и изменить с помощью команды <B>appname</B></FONT><B>
Tk.</B></FONT></DIR><A
name="send БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД"></A><B><FONT face=Arial><FONT
size=+1>БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД</FONT></FONT></B>
<DIR><FONT size=+1>Если отменить в приложении команду<B> <FONT
face=Arial>send</FONT></B><FONT face=Arial> (например, выполнив команду
<B>rename send {}</B>), то приложение перестанет реагировать на
поступающие запросы <B>send</B> и само не сможет посылать запросы.
Восстановить взаимодействие приложений можно, выполнив команду
<B>appname</B></FONT><B> Tk.</B></FONT></DIR><A
name="send БЕЗОПАСНОСТЬ"></A><B><FONT face=Arial><FONT
size=+1>БЕЗОПАСНОСТЬ</FONT></FONT></B>
<DIR><FONT size=+1>Команда<B> <FONT face=Arial>send</FONT></B><FONT
face=Arial> является потенциальным источником серьезных нарушений защиты,
так как любое приложение, способное соединиться с Вашим X сервером, может
посылать скрипты в Ваше приложение. С помощью Tcl присланные скрипты могут
читать Ваши файлы и выполнять запись в них и запускать подпроцессы под
Вашим именем. Особенно уязвимо управление доступом вида <B>xhost</B>, так
как всякий пользователь, заведенный на головном компьютере, может
связаться с Вашим сервером; если же это управление доступом отключить, то
связь становится возможной вообще для любого пользователя, где бы он ни
находился. Чтобы обеспечить хотя бы минимальную защиту, Tk проверяет
систему управления доступом на сервере и отвергает все присланные команды,
если либо (а) xhost-система управления доступом отключена (так что лишь
некоторые головные компьютеры могут устанавливать связь); либо (б) список
головных компьютеров, которым такая связь разрешена, пуст. В результате
никакое приложение не сможет связаться с Вашим сервером, если у него не
будет дополнительных прав (например, предоставленных
<B>xauth</B></FONT><B>).</B></FONT></DIR>