TclAPI
- A
- ascii
- B
- base64_decode
- base64_decodeex
- base64_encode
- base64_encodeex
- C
- char
- chmod
- close
- copyfile
- D
- date
- daylength
- decodebase64
- decr
- E
- encodebase64
- eof
- errorstring
- exec
- exitthread
- F
- fetch
- filedelete
- filemtime
- freespace
- G
- getapppath
- getcomputername
- getcurrentpath
- getdrivetype
- getenv
- gethostname
- getipaddress
- getlasterror
- getlongpath
- gets
- getsystemdirectory
- getvar
- getviewer
- getvolumelabel
- getwindowsdirectory
- H
- http.get
- I
- inport
- J
- japanese
- jis2sjis
- K
- kill
- killtimer
- L
- M
- mkdir
- mkfile
- myhostname
- myipaddress
- N
- O
- open
- outport
- P
- Q
- R
- read
- reg
- rgb
- S
- scanfile
- seek
- shortcut
- sjis
- sjis2hex
- sjis2jis
- sjisucshex
- splitutfhex
- T
- U
- V
- W
- wait
- wininet api
- X
- Y
- Z
base64_encodeex
api base64_encodeEx $text $text_len $out_varname
return length
文字数$text_lenの文字列$textをBASE64エンコードして変数out_varnameに格納します
エンコード後の文字数を返します
base64_encode
api base64_encode $text $text_len out_varname
return length
文字数$text_lenの文字列$textをBASE64エンコードして変数out_varnameに格納します
エンコード後の文字数を返します
base64_decodeex
api base64_decodeEx $base64 out_varname
return length
文字数$base64をBASE64デコードして変数out_varnameに格納します
デコード後の文字数を返します
base64_decode
api base64_decode $base64_text out_varname
return length
BASE64コードの文字列$base64_textをデコードして変数out_varnameに格納します
デコード後の文字数を返します
失敗するとout_varnameには空文字が格納され0が返ります
copyfile
api copyFile $fileA $fileB $noexists
return success
ファイルをコピーします($fileA --> $fileB)
$noexistsが1の場合、fileBが存在すれば失敗します
$noexistsが0の場合、fileBが存在していても上書きされます
成功すれば1が返ります
chmod
api chmod $mode $filename
return success
api chmod $filename
return hexval
ファイル属性の書込み禁止/許可を設定します
$mode
-w : 書き込み禁止
+w : 書き込み許可
+x[0-9]+ : 後続のHEX値をセット
-x[0-9]+ : 後続のHEX値をリセット
$modeを省略すると現在のファイル属性が16進数で返ります
0xffffffffが返ればファイルが無いことを意味します
date
api date
return date_text
現在の日付と時間を返します
フォーマット : "YYYY/MM/DD hh/mm/ss"
daylength
api daylength $from_date $to_date
return days
指定した日付間の期間を日数で返します(閏年等も考慮します)
set days [api daylength 1998/12/01 2008/01/15]
decodebase64
api decodeBase64 $cmpressed_data
return uncompressed_data
api encodeBase64で書き出されたファイルの全データを受け取り、デコードデータを返す
gui decodeBase64 と同じ機能です。
decr
api decr $tcl_object_handle
return 0
Tclオブジェクトの参照カウンタを減じます
encodebase64
api encodeBase64 $infile $outfile $before $after
return err
api encodeBase64 $text
return base64
infileファイルを読みoutfileにBase64エンコードしたデータを書き出す
エンコードデータに付け加えるヘッダとフッダデータをbeforeとafterに指定する
成功したら0を返す
gui encodeBase64 と同じ機能です
eof
api eof $fp
return {1|0}
exec
api exec $cmd [$arg1 ...]
return pid
アーギュメントで与えられたOSへのコマンドラインを実行しプロセスidを返します
プロセスidはウインドウをもつプロセスの場合に有効です
このプロセスidをapi waitに渡して終了を待つことができます
exitthread
api exitThread
return 1
スレッドスクリプトまたはスレッドプロシージャを終了します
スレッドスクリプトまたはスレッドプロシージャの中で実行します
スレッドプロシージャはapi threadで起動できます
スレッドスクリプトはapi threadEvalで起動できます
fetch
api fetch $fp $adr *data
return next_adr
filedelete
api filedelete $file
return handle
プロセス終了後にファイルを削除します
-1が返されたら失敗です
filemtime
api filemtime $filename $time
ファイルの更新日付を修正します
$timeは"YYYY/MM/DD HH:MM:SS"で与えます
freespace
api freeSpace $drive [$use]
return size
ディスクの空き容量をバイトサイズで返します
$useに1をセットして与えると使用容量を返します
set size [api freeSpae D:]
getdrivetype
api getdrivetype $drive
return type
ドライブのタイプを返します
typeは下記のいずれかです
unknown
noroot
removable
fixed
remote
cdrom
ramdisk
getvolumelabel
api getvolumelabel $drive [name]
return "VolumeNameBuffer:VolumeSerialNumber"
getlongpath
api getlongpath $path
return longpath
gets
api gets $path varname
return size
api openで開かれたファイルから1行を変数varnameに読み込みます
LFコードを行末と見なし
読み込んだサイズを返します。EOFに到達した場合は-1を返します。
getapppath
api getAppPath $exefilename
return path
実行ファイル名をフルパスで返します
api exec [api getAppPath exel.exe]
下記レジストリにセットされている値を返します
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths/$exefilename
getsystemdirectory
api getSystemDirectory
return path
Windowsのシステムディレクトリィを返します
例:"C:\WINDOWS\System32"
システムドライブ名を得る時に有効です
getwindowsdirectory
api getWindowsDirectory
return path
WindowsのWINDOWSディレクトリィを返します
例:"C:\WINDOWS\System32"
システムドライブ名を得る時に有効です
getcurrentpath
api getCurrentPath
return path
現在の作業フォルダ名を返します
tclコマンド"pwd"と同等です
getipaddress
api getIPaddress $hostname
return ipaddress
ホスト名からIPアドレスを得て返します
api getHostnameと逆の機能です
使用例:
api myHostName
→yoshida3
api getIPaddress yoshida3
→192.168.100.16
api getIPaddress localhost
→127.0.0.1
gethostname
api getHostName $ipaddress
return hostname
IPアドレスからホスト名を得て返します
api getIPadddressと逆の機能です
getenv
api getEnv $varname
return val
Windows環境変数の値を返します
set temppath [api getEnv TEMP]
getvar
api getVar $varname
return val
スレッドを起動したメイン側のTclグローバル変数の値を取得します
スレッドプロシージャ,スクリプトの中でのみ有効です
互換性維持のために残存しています。このコマンドを使わなくてもグローバル変数にアクセスできます。
getviewer
api getViewer $filename
return path
指定したファイルを表示するプログラム名をフルパスで返します
プログラム名が不明の場合やファイルが見つからなかった場合は空文字が返ります
$filenameには絶対パスでファイル名を与えます
そのファイルは現存している必要があります
参照: api shellopen
http.get
api http.get $url [$username [password]]
return text
wininet api
winInet API
コマンドシーケンス
HTTP GET
api inet.open
api inet.connect
api inet.httpRequest
api inet.read
api inet.close
HTTP POST (Normal size)
api inet.open
api inet.connect
api inet.httpRequest
api inet.read
api inet.close
HTTP POST (Large size)
api inet.open
api inet.connect
api inet.httpRequest
api inet.write
api inet.read
api inet.close
FTP get
api inet.open
api inet.connect
api inet.ftpOpenFile
api inet.read
api inet.close
FTP put
api inet.open
api inet.connect
api inet.ftpOpenFile
api inet.write
api inet.close
=====================================================
api inet.open
return session
wininetインスタンスを作成してセッションハンドルを返します
http/ftp共通コマンドです
api inet.close $session [$connect]
wininetのハンドルを削除します
http/ftp共通コマンドです
$session : api inet.openで返されたハンドル
$connect : api inet.connectで返されたハンドル
api inet.connect $session [$server [$service [$port [$username [$password]]]]]
return connect
サーバーに接続してコネクションハンドルを返します
http/ftp共通コマンドです
$session : api inet.openで返されたハンドル
$server : サーバー名 例:"freesoftnet.co.jp"
$service : サービス名 {http | ftp}
$port : TCPポート番号(16進数)
$username: ユーザー名(ftp)
$password: パスワード(ftp)
api inet.httpRequest $connect $url [$method [$post_len [$postdata]]]
return request
サーバーに送信するHTTPリクエストを作成して送信し、そのリクエストハンドルを返します
http専用コマンドです
$connect : api inet.connectで返されたセッションハンドル
$url : ファイルパス 例:"http://https:reesoftnet.co.jp/index.htm"
$method : {GET | POST | HEAD} 省略時:"GET"
$post_len: POSTデータのバイトサイズ
$postdata: POSTするデータ 巨大サイズの場合は省略する($post_lenだけ)
その代わりapi inet.writeで送信する
api inet.httpOpenFile $session $url
return request
サーバーにファイルをGETするHTTPリクエストを送信しそのリクエストハンドルを返します
http専用コマンドです
$session : api inet.openで返されたハンドル
$url : ファイルパス 例:"http://https:reesoftnet.co.jp/index.htm"
api inet.ftpOpenFile $connect $filename [$rw [$binary]]
return request
サーバーのファイルをオープンしリクエストハンドルを返します
ftp専用コマンドです
$connect : api inet.connectで返されたコネクションハンドル
$filename: ファイル名 例:"userlist.dat"
$rw : アクセスモード 'r' か 'w' 省略時:r
/ $binary : バイナリモードなら1を与えます 省略時:1
api inet.read $request
return data
サーバーのファイルを読み込みます
http/ftp共通コマンドです
$request : 下記コマンドで返されたハンドル
api inet.httpRequest
api inet.httpOpenFile
api inet.ftpOpenFile
api inet.write $request $data $length [post]
return wrotesize
サーバーのファイルに書き込みます
書き込んだデータのバイトサイズを返します
-1が返ったらエラーです
巨大サイズのPOSTデータはこのコマンドで送信します
その場合はアーギュメント末尾に"post"を加えて下さい
http/ftp共通コマンドです
$request : 下記コマンドで返されたハンドル
api inet.ftpOpenFile
api inet.httpRequest
$data : 書き込むデータ
$length : $dataのバイトサイズ
japanese
api japanese
return true
OSが日本語OSなら1を返します
myhostname
api myHostName
return hostname
コンピュータのDOMAIN名を返します
使用例:
api myHostName
→yoshida3
api getIPaddress yoshida3
→192.168.100.16
api getHostName 192.168.100.16
→yoshida3.local
api getComputerName
→YOSHIDA3
api getIPaddress YOSHIDA3
→192.168.100.16
myipaddress
api myIPaddress
return ipaddress
コンピュータのIPアドレスを返します
使用例:
api myIPadddress
→192.168.100.16
api myHostName
→yoshida3
api getIPaddress yoshida3
→192.168.100.16
api getIPaddress localhost
→127.0.0.1
mkdir
api mkDIR $newdirname
return success
新しいフォルダを作成します
mkfile
api mkFILE $filename
return success
新しい空ファイルを作成します
作成するだけです。同期処理などに活用します。
open
api open $filename [$mode]
return $path
ファイルをファイルハンドルを返します
modeを省略するとrbで開きます
mode: c関数 fopen()のmode です。ただしtは不可です。
read
api read $fp $size
return data
reg
api reg set $hkey $key [$varname] $val
api reg get $hkey $key [$varname]
return val
api reg setはレジストリに値をセットします
api reg getはレジストリから値を読み込みます
値のセットではキーの作成もできます
$varnameは省略可能な変数名です
rgb
api rgb $red $green $blue
return COLORREF
COLORREF値を返します
seek
api seek $path $address [$origin]
return newadr
ファイルポインタを移動します
移動後の位置が返ります(ファイル先頭からの位置)
$path : api openで返されたファイルハンドル
$adddress : 移動バイト数
$origin : 移動原点
"set" : 先頭から
"current" : 現在位置から
"end" : 末尾から
scanfile
api scanFile [$posix] [dir]
return filelist
$posixの条件でファイルをスキャンしてファイル名リストを返します
$posixを省略すると"*.*"指定と見なされます
"dir"を与えるとフォルダリストを返します
使用例:
foreach file [api scanFile *.exe] {
.....
}
sjisucshex
api SjisUcsHex $sjis
return ucshex
Shift-JIS漢字列をUCSHEXコードに変換します
UCSHEXコードはShift-JIS漢字コードをユニコードに変換し、
それらを16進数表記することでASCII文字列化したコードです
漢字コードを表す16進数部は
sjis
api sjis $char
return true
$charがShift_JISの先頭バイトか否かを返します
splitutfhex
api SplitUtfHex $utf
return ucshex_list