ZESCVCOM のソースプログラム

ZESCVCOM
ZESCVCOM ;;;Vcomシーケンス for ESC-vcom++/for CACHE(DSM-J)/
;;;By S.Mizuno/ESC-vcom++/[06-dec-2001];;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;ESC-vcom++主要機能シーケンス
;;;-->テキストの色表示は ZESCCOL を参照
;;;-->ディレクトリ管理は ZESCDIR を参照
;;; U 0:WIDTH=0 にしてください!
;;;-----------------------------------------------------------------
;;;[1]エクセルファイル開く --> Excel(path,defdir)
;;;[2]ワードファイル開く --> Word(path,defdir)
;;;[3]一般の.EXEファイルを実行 --> Exec(exepath,param,defdir)
;;;[4]漢字コードの変更 --> Kanji(kcode)
;;;[5]画面表示行桁数の変更 --> WideScrn(width,height,font)
;;;[6]80x25画面表示に戻す --> FixScrn()
;;;[7]ドライブがレディかどうか確認 --> Ready(drive)
;;;[8]ドライブタイプを取得 --> DriveType(drive)
;;;[9]Vcomのバージョンを取得 --> GetVersion()
;;;[10]タイトルバーを設定 --> SetTBar(str)
;;;[11]ウインドウズディレクトリ取得 --> GetWinDir()
;;;[12]ウインドウズシステムディレクトリ取得 -> GetSysDir()
;;;[13]標準ビープサウンドを鳴らす --> MsgBeep(sound)
;;;[14]メッセージボックスの表示 --> MsgBox(text,title,style)
;;;[15]画面背景色の設定 --> BkColor(color)
;;;[16]メインウインドウの位置とサイズの変更
;;; ---> SetWinPos(order,x,y,cx,cy,flag)
;;;[17]POWERPOINT開く --> Powerpoint(path,defdir)
;;;[18]INTERNET EXPLORE開く --> IExplore(path,defdir)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Q
KeybOff ;;;
N A ;;;dummy;;;
N %DEVICE S %DEVICE=0 ;;[02-may-2001];;;
D ;;;[30-nov-2001];;;
.U 0:(NOECHO:TERM=$C(27)_$C(13)) Q ;;;cache;;;
.;;;;;D OFF^%ECHO ;;;msm;;;
;;;;;U 0:NOECHO ;;;エコー無;;;
W $C(27)_"[2h" ;;;キーボード入力禁止;;;
F R *A:0 E Q ;;;先読みバッファを空に;;;
Q
KeybOn ;;;
N %DEVICE S %DEVICE=0 ;;[02-may-2001];;;
W $C(27)_"[2l" ;;;キーボード入力許可;;;
D ;;;[30-nov-2001];;;
.U 0:(ECHO:TERM=$C(13)) Q ;;;cache;;;
.;;;;;;D ON^%ECHO ;;;msm;;;
;;;;;U 0:ECHO ;;;エコー有;;;
Q
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Excel(path,defdir) ;;;エクセルファイル開く;;;
;;;path=開くファイルパス名(タイプex.TXT,XLS,CSV);;;
;;;defdir=デフォルト(作業)ディレトリ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
S STR=$C(27)_"%59;20 F"_path_$C(13)_$C(27)_"%59;21 F"_defdir_$C(13)
S STR=STR_$C(27)_"%501;0;20;21;5;0; F"
W STR R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Word(path,defdir) ;;;ワードファイル開く;;;
;;;path=開くファイルパス名(タイプex.TXT,DOC);;;
;;;defdir=デフォルト(作業)ディレトリ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
S STR=$C(27)_"%59;20 F"_path_$C(13)_$C(27)_"%59;21 F"_defdir_$C(13)
S STR=STR_$C(27)_"%502;0;20;21;5;0; F"
W STR R ret
D KeybOn ;;;入力許可;;;
Q ret
Powerpoint(path,defdir) ;;;powerpointファイル開く;;;
;;;path=開くファイルパス名(タイプex.TXT,DOC);;;
;;;defdir=デフォルト(作業)ディレトリ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
S STR=$C(27)_"%59;20 F"_path_$C(13)_$C(27)_"%59;21 F"_defdir_$C(13)
S STR=STR_$C(27)_"%503;0;20;21;5;0; F"
W STR R ret
D KeybOn ;;;入力許可;;;
Q ret
IExplore(path,defdir) ;;;Iexploreファイル開く;;;
;;;path=開くファイルパス名(タイプex.TXT,DOC);;;
;;;defdir=デフォルト(作業)ディレトリ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
S STR=$C(27)_"%59;20 F"_path_$C(13)_$C(27)_"%59;21 F"_defdir_$C(13)
S STR=STR_$C(27)_"%509;0;20;21;5;0; F"
W STR R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Exec(exepath,param,defdir) ;;;一般の.EXEファイルを実行;;;
;;;exepath=実行するファイルパス名(CMD.EXE/commandやNOTEPAD等);;;
;;;param=実行時に受け渡すパラメータ(開くファイルパス名等);;;
;;;defdir=デフォルト(作業)ディレトリ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
S STR=$C(27)_"%59;19 F"_exepath_$C(13)
S STR=STR_$C(27)_"%59;20 F"_param_$C(13)_$C(27)_"%59;21 F"_defdir_$C(13)
S STR=STR_$C(27)_"%500;19;20;21;5;0; F"
W STR R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Kanji(kcode) ;;;漢字コードの変更(0:sjis,5:SuperDec);;;
N STR
W $C(27)_"%74;"_kcode_";777; F"
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WideScrn(width,height,font) ;;;画面表示行桁数の変更;;;
;;;width=画面表示桁数;;;
;;;height=画面表示行数;;;
;;;font=フォント番号(0:通常);;;
W $C(27)_"%73;"_height_";"_width_";"_font_"; F"
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FixScrn() ;;;80x25画面表示に戻す(通常フォント);;;
W $C(27)_"%73;0;0;0; F"
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Ready(drive) ;;;ドライブがレディかどうか確認;;;
;;;drive=0:カレント,1:A,2:B,...);;;
;;;ret(結果)=0:レディ;;;
N STR,ret
D KeybOff ;;;入力禁止;;;
I drive?1U S drive=$A(drive)-$A("A")+1
I drive?1L S drive=$A(drive)-$A("a")+1
W $C(27)_"%100;"_drive_"; F" R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DriveType(drive) ;;;ドライブタイプを取得;;;
;;;drive=0:カレント,1:A,2:B,...);;;
;;;ret(結果)=0:無効なドライブ,1:FD,2:HD,3:net,4:CD-ROM);;;
N STR,ret
D KeybOff ;;;入力禁止;;;
I drive?1U S drive=$A(drive)-$A("A")+1
I drive?1L S drive=$A(drive)-$A("a")+1
W $C(27)_"%101;"_drive_"; F" R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GetVersion() ;;;Vcomのバージョンを取得;;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"[777W" R *A,ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SetTBar(str) ;;;タイトルバーを設定;;;
W $C(27)_"%59;18; F"_str_$C(13)_$C(27)_"[172;18W"
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GetWinDir() ;;;ウインドウズディレクトリ取得;;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"[163W" R *A,ret
S ret=$P(ret,";",2)
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GetSysDir() ;;;ウインドウズシステムディレクトリ取得;;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"[164W" R *A,ret
S ret=$P(ret,";",2)
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MsgBeep(sound) ;;;標準ビープサウンドを鳴らす;;;
W $C(27)_"[133;"_sound_";W"
Q sound
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ShowWindow(param) ;;;ウインドウの表示状態の変更;;;
;;;param=ウインドウの表示状態パラメタ;;;
W $C(27)_"[131;"_param_";W"
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MsgBox(text,title,style) ;;;メッセージボックスの表示;;;
;;;text=メッセージボックスに表示する文字列(現在<CR>は不可);;;
;;;title=タイトルバーに表示する文字列;;;
;;;style=メッセージボックスのボタンのスタイル(ex."3;32");;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"%59;21 F"_text_$C(13) ;;;とりあえず;;;
W $C(27)_"%59;22 F"_title_$C(13) ;;;とりあえず;;;
W $C(27)_"[135;2;21;22;"_style_"W" R *A,ret
S ret=$P(ret,"$",2),ret=$TR(ret,";","")
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GetDosVer() ;;;MS-DOSのバージョンを取得;;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"%148 F" R ret
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BkColor(color) ;;;画面背景色の設定;;;
W $C(27)_"[192;"_color_"W"_$C(27)_"[193;0W" ;;;
Q 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SetWinPos(order,x,y,cx,cy,flag) ;;;メインウインドウの位置とサイズの変更;;;
;;;order=配置情報(0:上位,1:最下位,255:最前面保持,254:全上位);;;
;;;x,y,cx,cy=位置と幅;;;
;;;flag=(ORで指定);;;
;;;flag=1 : cx,cyを無視(現在を保持);;;
;;;flag=2 : x,yを無視(現在を保持);;;
;;;flag=4 : orderを無視(現在を保持);;;
;;;flag=8 : 変更されても再描画しない;;;
;;;flag=16 : ウインドウをアクテイブ化しない;;;
;;;flag=64 : ウインドウを表示;;;
;;;flag=128 : ウインドウを表示しない;;;
N STR,ret,A
D KeybOff ;;;入力禁止;;;
W $C(27)_"[176;"_order_";"_x_";"_y_";"_cx_";"_cy_";"_flag_"W" R *A,ret
S ret=$P(ret,"$",2),ret=$TR(ret,";","")
D KeybOn ;;;入力許可;;;
Q ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;