cls 1 ;背景白が眩しいので灰色 title "BEEP音を鳴らす v1.01" ;タイトル名 #uselib "KERNEL32.DLL" #func Beep "Beep" int,int ;beep で音が出るように指定 test=0 ;テスト時=1 / EXE作成時には必ず=0に syu=600 ;周波数を指定 long=200 ;音の長さを指定 kai=1 ;鳴らす回数を指定 if test=1 : goto *beep_001 ;if→もしもtest=1なら。goto→ *beep_001 へ if dir_cmdline="" : goto *beep_100 ;dir_cmdline→コマンドラインオプションがない場合 *beep_100 へ *beep_001 ;ラベル、goto *beep_001 とする事でここに戻れる ;ここでコマンドラインの数値を分解します sdim data,100 : data=""+dir_cmdline ;コマンドライン文字をdataに格納 if test=1 : data=" /700 /300 /4" ;test時のコマンドライン文字を指定 a="" ;雑用a lod=instr(data,0,"/") ;コマンドラインがあるかどうかの簡易調査 if lod=-1 : goto *beep_100 ;なければ *beep_100 へ repeat 3,0 ;周波数、音の長さ、回数を取得する為に3回ループ a="" : lod=instr(data,0,"/") ;数値を取得する為、先頭の/を検索 if lod=-1 : goto *beep_100 ;/が無い場合はエラー扱い、 *beep_100 へ siz=instr(data,lod," ") ;数値を取得する為、後ろ空白(スペース)を検索 if siz=-1 : siz=strlen(data) : siz+ ;空白(スペース)が無い場合は全体の長さを取得 a=strmid(data,lod+1,siz-1) ;aに/から空白(スペース)までの文字を抜き出す if cnt=0 : a=int(a) : syu=a ;cnt=0→ループ1回目 値を数値に変換、 syuに代入 if cnt=1 : a=int(a) : long=a ;cnt=1→ループ2回目 値を数値に変換、longに代入 if cnt=2 : a=int(a) : kai=a ;cnt=2→ループ3回目 値を数値に変換、 kaiに代入 max=strlen(data) ;dataの文字の長さをmaxに代入 data=strmid(data,siz+1,max-(siz+1)) ;上で取得した部分を切り落とす ; /700 /300 /4 ループ1回目↓ ; /300 /4 ループ2回目↓ ; /4 ループ3回目 loop ;ループ if syu<50 : syu=50 ;変な数値が入力されていた場合の修正 if long<30 : long=30 ;syuが50未満(50より少ない)なら50に if kai<1 : kai=1 ; if test=1 : dialog "以下の設定で鳴らします\n\n周波数 "+syu+"\n長さ "+long+"\n回数 "+kai *beep_100 ;音を鳴らすメイン部分 repeat kai,0 ;repeat→kaiで指定した回数分loopまで繰り返す beep syu,long ;beep→上で指定した数値syuとlongで音を鳴らします wait 5 ;wait→数値の分だけ一時待機 getkey key1,16 ;getkey→特定のキーが押されているか getkey key2,17 ;押されていたら key(数値)に1が代入される ;後ろの数値はどのキーか。16→[SHIFT]、17→[CTRL] if (key1=1) & (key2=1) : break ;上のgetkeyで取得したSHIFTとCTRLが押されているかの判断 ;key1とkey2の数値が両方1なら(SHIFTとCTRLが押されてる)後の条件を実行 ;break→繰り返す回数が残っていてもrepeatのループより抜け出す loop ;loop→上にあるrepeatまで戻ります *beep_999 end ;終了