在应用程序中获取调制解调器详细资料 马建国 1998年 第50期 12版   开发一个利用调制解调器(以下简称为“猫”)进行串行口通信的应用程序,最大的麻烦莫过于如何面对牌号众多标准不一的猫。比如:每款猫都有各自厂家推荐的初始化命令、设置为硬件流控方式有的猫用“&K3”,有的猫用“\Q3”等。一般的解决办法都是在程序中建立一个已知猫的数据库,放入对应的资料,运行时由用户选择一个适合(或兼容)自己型号的猫。用户觉得此法麻烦,开发者也疲于硬件资料的搜集和更新。   实际上程序中利用Win95的注册表,可以得到本机猫的几乎所有资料,包括本机安装猫的个数、分别的名称及串口号、每只猫的厂家建议初始化串、命令前置码、命令结束符、命令回报、纠错控制命令、流量控制命令……得到了它们,程序便可准确地发送Modem控制命令及处理返回信息。   注册表中存放Modem详细资料的位置在HKEY_LOCAL_MACHINE\System\Services\Class\Modem\XXXX\Settings与Responses等路径下,以下列举说明几个重要键值的含义:   DriverDesc:调制解调器牌号名;   AttachedTo:所连接的串行口号码;   Prefix:调制解调器命令前置符,一般都为“AT”;   FlowControl_Hard、Off、Soft:打开硬件或软件流控、关闭流控命令符;   Compression_On、Off:打开或关闭数据压缩功能命令;   Terminator:命令结束符,一般多为“”(回车符,程序中可用字符常量#13);   SpeakerMode_Dial、Off、On:扬声器模式控制命令;   SpeakerVolumn_High、Low、Med:扬声器音量控制命令;   SpeedNegotiation_Off、On:串行口速率锁定或自动调整命令;   \Answer下有Modem的摘机应答命令,\Hangup下有挂线命令,\Init下有最重要的Modem厂家建议初始化命令串,以及其它很多命令。   VB、Delphi等可视化开发工具中都提供有对注册表的封装(如Delphi中的TRegistry,具体用法见在线帮助),利用它们可在程序中方便地查到上述各项之值,在此不多作说明。