本帖最后由 ioripalm 于 2014-3-4 16:16 编辑
最近在测试一个脚本,是检测内网下同网段内别的电脑状态,如果不正常就通过调制解调器拨我的手机提醒我,这样我就可以翘班用。
试了在电脑里装上PCI接口的内置调制解调器,插上电话线,在winxp自带的网络连接里新建了拨号连接,输入手机号,可以正常拨通我的电话,接通没有声音。
现在想解决几个问题:
1:如果通过AU3来拨电话,网上搜了很久,连cmd下的命令行都没有。
2:调制解调器支持语音的话,如何给手机发送音频,试过调制解调器自带的传真程序(已编译,不知道原理),可以正常给手机发送录好的各种提示音还能接收手机按下的按键来回应。
2014年2月 感谢网友 rchockxm 提供的UDF
现在可以拨号成功了,我将我测试的代码发上来。#include <CommInterface.au3>
$comPort = 3 ;调制解调器所在com口
$callResultArray[1]
$hFile = 0
$sResult = ""
$sCommand = "atd13333333333" & @CRLF ;atd加上手机号码再加回车就是发送拨号
TrayTip("建立拨号端口", "COM" & $comPort, 3, 1)
$hFile = _CommAPI_OpenCOMPort($comPort, $comBaud, $comParity, $comByteSize, $comStopBits)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
_CommAPI_ClearCommError($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
_CommAPI_TransmitData($hFile, $sCommand)
TrayTip("呼叫号码:", StringMid($sCommand, 4), 20, 1)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
For $i = 1 To 120 ;建立数组来接受返回的信息
$sResult = _CommAPI_ReceiveData($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
_ArrayAdd($callResultArray, $sResult)
If $sResult <> "" Then
ExitLoop
EndIf
Sleep(500)
Next
TrayTip("拨号最终返回值", $sResult, 3, 1)
;未开机BUSY
;未接电话线NO DIALTONE
;电话开机但是未拨通BUSY
;不接电话BUSY
;等很久挂掉BUSY
;立刻挂掉BUSY
_CommAPI_CLosePort($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
|