ダイヤルのプロパティの変更No.00961
mizu さん 98/06/08 20:06
 
秀まるおさんこんにちは。こないだはZmodem連続送信ありがとうございました。

今度は、ダイヤルのプロパティの変更なんですが、

マクロスクリプトで変更画面を表示させることはできないでしょうか?

会社と家とでしょっちゅう切り替えるんですが、動作環境の中なんで

ちょっと手間がかかります。

どなたか、良い案をご存知の方いたら教えてください。

mizu

[ ]
RE:00961 ダイヤルのプロパティの変更No.00965
斉藤秀夫 さん 98/06/09 11:11
 
 えっと、つまり、「設定・動作環境・ダイヤル/切断方法」の「所在地」ってやつ
を毎回切り替えるのが不便で、そこをスクリプトで切り替えたいって話ですよね?。

 たしかにおっしゃる通り、スクリプトでできたら便利そう…。

 それで調べてみたら、スクリプトでできることが分かりました。がしかし、ちょっ
と専門的です。

 「所在地」の切り替えは、レジストリの中の

     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
                              CurrentVersion\Telephony\Locations

 という所の、

     CurrentID

 という値で決まるようです。これをスクリプトで書き換えてやれば切り替わってく
れます。

 という訳でさっそくスクリプトを作りました。折り返しの関係をうまく編集して使
ってみてください。(ちなみにこちらではWindows98でしかテストしてないです)

-------------------------location.hsc---------------------------

; 所在地を切り替えるスクリプト
;
##cLocation = 0
while(1)
#key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\
Locations\Location" + ##cLocation
openreg "LOCALMACHINE", #key
if( no )
breakloop
endif
closereg
##cLocation = ##cLocation + 1
endwhile

addmenu "^I所在地を選んでください"
addmenu 0
##i = 0;
while( ##i < ##cLocation )
#key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\
Locations\Location" + ##i
openreg "LOCALMACHINE", #key
getreg "Name", #name
closereg
#str_i = ##i + 1
addmenu "&" + #str_i + "^I" + #name
##i = ##i + 1
endwhile
showmenu
##i = result - 1
if( ##i < 0 )
exit
endif
openreg "LOCALMACHINE", "SOFTWARE\Microsoft\Windows\CurrentVersion\
Telephony\Locations"
writeregint "CurrentID", ##i
closereg
----------------------------------------------------------------

[ ]
RE:00965 ダイヤルのプロパティの変更No.00967
斉藤秀夫 さん 98/06/09 11:14
 
 あらら、タブが消えてしまいました。もう一度アップします

-------------------------location.hsc---------------------------

; 所在地を切り替えるスクリプト
;
    ##cLocation = 0
    while(1)
        #key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\
Locations\Location" + ##cLocation
        openreg "LOCALMACHINE", #key
        if( no )
            breakloop
        endif
        closereg
        ##cLocation = ##cLocation + 1
    endwhile

    addmenu "^I所在地を選んでください"
    addmenu 0
    ##i = 0;
    while( ##i < ##cLocation )
        #key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\
Locations\Location" + ##i
        openreg "LOCALMACHINE", #key
        getreg "Name", #name
        closereg
        #str_i = ##i + 1
        addmenu "&" + #str_i + "^I" + #name
        ##i = ##i + 1
    endwhile
    showmenu
    ##i = result - 1
    if( ##i < 0 )
        exit
    endif
    openreg "LOCALMACHINE", "SOFTWARE\Microsoft\Windows\CurrentVersion\
Telephony\Locations"
    writeregint "CurrentID", ##i
    closereg
----------------------------------------------------------------

[ ]
RE:00965 ダイヤルのプロパティの変更No.00994
mizu さん 98/06/13 13:21
 

> えっと、つまり、「設定・動作環境・ダイヤル/切断方法」の「所在地」ってやつ
>を毎回切り替えるのが不便で、そこをスクリプトで切り替えたいって話ですよね?。
>
> たしかにおっしゃる通り、スクリプトでできたら便利そう…。
>
> それで調べてみたら、スクリプトでできることが分かりました。がしかし、ちょっ
>と専門的です。
>
> 「所在地」の切り替えは、レジストリの中の
>
>     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
>                              CurrentVersion\Telephony\Locations
>
> という所の、
>
>     CurrentID
>
> という値で決まるようです。これをスクリプトで書き換えてやれば切り替わってく
>れます。
>
> という訳でさっそくスクリプトを作りました。折り返しの関係をうまく編集して使
>ってみてください。(ちなみにこちらではWindows98でしかテストしてないです)
>

やってみましたが、だめでした(Windows95)。
レジストリの中に、Telephonyがないようです。
それで、色々調べてみたんですが...

ここから自己レスです。

Windows95では、\Windowsフォルダの「Telephon.INI」というファイルに、
現在の所在地が書かれているようです。

「Telephon.INI」の最後の方に、

 [Locations]
 CurrentLocation=2,2
 Locations=3,3
 Location0=1,"0発信","0","0","3",81,0,0,0,"",0," "
 Inited=1
 Location1=0,"標準","","","489",81,0,0,1,"",0," "
 Location2=2,"DP","","","489",81,0,0,0,"",1,""

というのがあり、「Location0=1, ...」とかが、所在地のプロパティで、
「CurrentLocation=2,2」というのが、現在の所在地のようです。

「2,2」の最初の2と終わりの2が何を意味するのか分かりませんが、
「0発信」にする場合は、ここが「1,0」、「標準」にする場合は「0,1」に
なるようです(上記の例の場合)。

色々やってみたら、「LocationX=Y, "名前", ......」のXとYを逆にして、
「CurrentLocation=Y,X」とするといいようです。実際、手で書き換えたら
うまくいきました。



[ ]
RE:00994 ダイヤルのプロパティの変更No.00995
はじめ さん 98/06/13 16:25
 
  mizuさん、秀まるおさん、こんにちは。

>やってみましたが、だめでした(Windows95)。
>レジストリの中に、Telephonyがないようです。
>それで、色々調べてみたんですが...
>
>ここから自己レスです。
>
>Windows95では、\Windowsフォルダの「Telephon.INI」というファイルに、
>現在の所在地が書かれているようです。
>
>「Telephon.INI」の最後の方に、
>
> [Locations]
> CurrentLocation=2,2
> Locations=3,3
> Location0=1,"0発信","0","0","3",81,0,0,0,"",0," "
> Inited=1
> Location1=0,"標準","","","489",81,0,0,1,"",0," "
> Location2=2,"DP","","","489",81,0,0,0,"",1,""
>
>というのがあり、「Location0=1, ...」とかが、所在地のプロパティで、
>「CurrentLocation=2,2」というのが、現在の所在地のようです。
>
>「2,2」の最初の2と終わりの2が何を意味するのか分かりませんが、
>「0発信」にする場合は、ここが「1,0」、「標準」にする場合は「0,1」に
>なるようです(上記の例の場合)。
>
>色々やってみたら、「LocationX=Y, "名前", ......」のXとYを逆にして、
>「CurrentLocation=Y,X」とするといいようです。実際、手で書き換えたら
>うまくいきました。
>
>

 mizuさん、よくお調べになりましたねえ。
テレフォニーは、コントロールパネルの中を見ればわかるの
ですが、Windows98には、あるんですが、Windows95にはないん
です。WindowsNTにはあります。雑誌の写真を見て知りました。
だから、Windows95のレジストリを見ても存在しません。

 ただし、Windows95にも隠してあります。\Windows\System直下
に、Telephon.cp$というのがあって何の役にも立っていないの
ですが、ここをTelephon.cplに書きかえてやると、コントロール
パネル内に「テレフォニー」が出現します。

 割り込んで、ご免なさい。


[ ]
RE:00994 ダイヤルのプロパティの変更No.00996
斉藤秀夫 さん 98/06/13 16:35
 
 なんと、Windows95ではiniファイルを使っていたのですか。

 いちおう秀Termにはiniファイルをアクセスする文もあるのでそれでスクリプトを
作れば切り替えできるようになります。

 ちょっと汎用のものを作るのは大変そうなので、「CurrentLocation=」というのを
書き換えるだけのスクリプトなら、こんな風な形のスクリプトでいいはずです。

-------------------------------------------------------------
     menu "設定その1", "設定その2"
     switch result
         case 0
             putini "Telephon.ini", "Locations", "CurrentLocation", "...設定
1..."
         case 1
             putini "Telephon.ini", "Locations", "CurrentLocation", "...設定
2..."
     endswitch
-------------------------------------------------------------


[ ]
RE:00996 ダイヤルのプロパティの変更No.01014
mizu さん 98/06/16 11:37
 
秀まるおさん、はじめさん、お教えありがとうございました。
今、スクリプト作成中です。

ところで、新たな問題がでてきました。

秀Termのホストプロパティは、海外の所在地に対応していないのでしょうか?

まいとーくやハイパーターミナルは、ホストのプロパティにホストの国名を入れるところ
がありますが、秀Termにはありません。

ダイヤルのプロパティで、所在地の国名を変えても、国際発信番号や国番号を
つけてくれないようです。

[ ]
RE:01014 ダイヤルのプロパティの変更No.01019
斉藤秀夫 さん 98/06/16 13:49
 
 すみません。海外からの接続には対応してません。

 海外から接続する場合には、「モデムを直接制御する」にして、電話番号に国番号
から全部指定してやらないといけないです。


[ ]