## Tcl9.0.3/Tk9.0.3 Documentation > Tk Commands > send

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    send — 異なる応用譜内の命令を実行する Execute a command in a different application
  構文 SYNOPSIS
  説明 DESCRIPTION
    -async
    -displayof pathName
    --
  応用譜の名前 APPLICATION NAMES
  DISABLING SENDS
  安全保障 SECURITY
  制限事項 LIMITATIONS
  用例 EXAMPLE
  KEYWORDS

### NAME

send — 異なる応用譜内の命令を実行する Execute a command in a different application

### 構文 SYNOPSIS

send ?options? app cmd ?arg ...?

### 説明 DESCRIPTION

この命令は app と名付けられた応用譜内で実行される cmd (及び arg)の為に準備をする｡それはその命令の実行から結果又は不都合を返す｡ app はどれかの応用譜の名前であって､その主なる窓が送付者の主要な窓を含んでいる画面上にある; それは同じ処理課程内にある必要はない｡ arg 引数が存在しない場合は､実行される命令は全て cmd 引数内に完全に含まれている｡一つ或はそれ以上の arg が存在する場合は､それらは実行される命令に eval 命令に対するかの様に鎖状に繋がれる｡ 　　　　　　 This command arranges for cmd (and args) to be executed in the application named by app. It returns the result or error from that command execution. App may be the name of any application whose main window is on the display containing the sender's main window; it need not be within the same process. If no arg arguments are present, then the command to be executed is contained entirely within the cmd argument. If one or more args are present, they are concatenated to form the command to be executed, just as for the eval command.

もし最初の引数が “-” で始まるとそれらは指示項目として扱われる｡次の指示項目が現在定義されている: 　　　　　　 If the initial arguments of the command begin with “-” they are treated as options. The following options are currently defined:

-async
  非同期の起動を要求する｡この場合､ send 命令は､目標応用譜内での cmd の完遂を待つことなく､すぐさま完了する; どの結果も利用できないし不都合も無視される｡もし目標の応用譜が送っている応用譜と同じ処理課程内にある場合､この -async 指示項目は無視される｡　 　　　　　　 Requests asynchronous invocation. In this case the send command will complete immediately without waiting for cmd to complete in the target application; no result will be available and errors in the sent command will be ignored. If the target application is in the same process as the sending application then the -async option is ignored.

-displayof pathName
  目標の応用譜の主なる窓が応用譜の主なる窓を含む画面ではなく pathName によって与えられる窓の画面上にあることを指定する｡ 　　　　　　 Specifies that the target application's main window is on the display of the window given by pathName, instead of the display containing the application's main window.

--
  指示項目のリストが終ることだけを担当する｡この指示項目は app が先頭に “-” を含むかもしれないときにのみ必要である｡ 　　　　　　 Serves no purpose except to terminate the list of options. This option is needed only if app could contain a leading “-” character.

### 応用譜の名前 APPLICATION NAMES

応用譜の名前は最初に応用譜を作成した算譜か記述譜の名前から設定される｡ tk appname 命令を使って応用譜の名前を問合せたり変更したりできる｡ 　　　　　　 The name of an application is set initially from the name of the program or script that created the application. You can query and change the name of an application with the tk appname command.

### DISABLING SENDS

もし send 命令が応用譜から除去された場合(譬えば､命令 rename send {} を使って)､応用譜は後から入ってくる send 要求に応答しなくなり､且つ､要求を出すこともできなくなる｡通信は tk appname の起動により再度可能になる｡ 　　　　　　 If the send command is removed from an application (e.g. with the command rename send {}) then the application will not respond to incoming send requests anymore, nor will it be able to issue outgoing requests. Communication can be reenabled by invoking the tk appname command.

### 安全保障 SECURITY

send 命令は安全保障の潜在的な深刻な抜け穴である｡ Unix 上では貴兄の X 中央集中処理機能に接続し得るどの応用譜でも貴兄の応用譜に記述譜を送付できる｡この到来する記述譜は貴兄のファイルに読み書きするためと､貴兄の名前の下に処理課程を起動する為に Tcl を使うことができる｡ xhost によって提供される Host-based の利用管理は特に安全性が劣る､理由は､特定の主催者に登録されている者は誰でも､貴兄の中央集中処理機能に接続を許容する､又､無効にされた場合､誰にでも何時でも貴兄の中央集中処理機能に接続を許容する｡最低限､少しの安全保障提供するためには､ Tk が中央集中処理機能に使われている利用の制御を確認し､到来する送付が (a) xhost-方式の利用の制御が有効であり(即ち､特定の主催者のみが接続を確立することができる)且つ (b) 有効な主催者のリストが空でない場合､以外は拒絶することである｡この意味は､応用譜は､何か譬えば xauth によって与えられるような他の形式の権限がない限り貴兄の中央集中処理機能に接続できない事を意味する｡ Windows の下では､現在の所 send は機能停止されている｡大部分の機能は代りに dde 命令で提供される｡ 　　　　　　 The send command is potentially a serious security loophole. On Unix, any application that can connect to your X server can send scripts to your applications. These incoming scripts can use Tcl to read and write your files and invoke subprocesses under your name. Host-based access control such as that provided by xhost is particularly insecure, since it allows anyone with an account on particular hosts to connect to your server, and if disabled it allows anyone anywhere to connect to your server. In order to provide at least a small amount of security, Tk checks the access control being used by the server and rejects incoming sends unless (a) xhost-style access control is enabled (i.e. only certain hosts can establish connections) and (b) the list of enabled hosts is empty. This means that applications cannot connect to your server unless they use some other form of authorization such as that provide by xauth. Under Windows, send is currently disabled. Most of the functionality is provided by the dde command instead.

### 制限事項 LIMITATIONS

macOS/aquaでは､同じ手続函数内にある解釈実行機能でのみ稼働する(これは"winfo interps"によって判る)｡ 他の手続函数内にある解釈実行機能への発動は何も遂行しない｡ Under macOS/aqua, the send command works only with interpreters that exist in the same process (these are returned by "winfo interps"). Invocations that target an interpreter that exists in another process don't accomplish anything.

### 用例 EXAMPLE

この記述譜の断片は特定の表示の上で一度だけ実行する応用譜の作成に使用できる｡ 　　　　　　 This script fragment can be used to make an application that only runs once on a particular display.

    if {[tk appname FoobarApp] ne "FoobarApp"} {
        send -async FoobarApp RemoteStart $argv
        exit
    }
    # 遠隔呼び出しされて､応用譜の主要窓を前面に出して要求されたファイルを開く､命令｡
    # The command that will be called remotely, which raises
    # the application main window and opens the requested files
    proc RemoteStart args {
        raise .
        foreach filename $args {
            OpenFile $filename
        }
    }

### KEYWORDS

application, dde, name, remote execution, security, send
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.