【ご質問】
Curlアプレットから、クライアント端末のコンピュータ名を取得する方法はあるのでしょうか。
【回答】
標準APIを使った方法としては、get-from-host-environmentプロシージャで
“COMPUTERNAME”を取得する方法があります。
また、標準APIではありませんがspawn-host-shellを使ってWindowsコマンドの
hostnameを使用する方法もあります。
(この方法の場合は一瞬コマンドプロンプトが表示されます。)
以下のサンプルを参考にしてください。
{curl 6.0,7.0,8.0 applet} {curl-file-attributes character-encoding = “shift-jis”}
{import * from CURL.RUNTIME.HOST-ENVIRONMENT} {import * from CURL.RUNTIME.HOST-PROCESS}
{let cb1:CommandButton = {CommandButton label = “get-from-host-environmentを使用”, {on Action do let env:String = {get-from-host-environment “COMPUTERNAME”} {popup-message env} } } } {let cb2:CommandButton = {CommandButton label = “spawn-host-shellを使用”, {on Action do def host-process = {spawn-host-shell read-stdout? = true, read-stderr? = true, “hostname” } {with-open-streams stream = {host-process.read-open-stdout character-encoding = {get-character-encoding-by-name “shift-jis”} } do {while not stream.end-of-stream? do {popup-message {stream.read-line}} } } } } }
{VBox spacing = 1cm, cb1, cb2 }
|
それぞれのプロシージャの詳細は、APIリファレンスの
[CURL.RUNTIME.HOST-ENVIRONMENT]-[get-from-host-environment]
の項と
[CURL.RUNTIME.HOST-PROCESS]-[spawn-host-shell]
の項をご参照ください。