<title>send</title> <CENTER><h1>send</h1></CENTE> <DIR><FONT face=Arial><FONT size=+1>Выполнить команду в другом приложении.</FONT></FONT> <BR> <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>