[已解决]有没有朋友试过AU3控制调制解调器来拨电话?
本帖最后由 ioripalm 于 2014-3-4 16:16 编辑最近在测试一个脚本,是检测内网下同网段内别的电脑状态,如果不正常就通过调制解调器拨我的手机提醒我,这样我就可以翘班用。
试了在电脑里装上PCI接口的内置调制解调器,插上电话线,在winxp自带的网络连接里新建了拨号连接,输入手机号,可以正常拨通我的电话,接通没有声音。
现在想解决几个问题:
1:如果通过AU3来拨电话,网上搜了很久,连cmd下的命令行都没有。
2:调制解调器支持语音的话,如何给手机发送音频,试过调制解调器自带的传真程序(已编译,不知道原理),可以正常给手机发送录好的各种提示音还能接收手机按下的按键来回应。
2014年2月 感谢网友 rchockxm提供的UDF
现在可以拨号成功了,我将我测试的代码发上来。
#include <CommInterface.au3>
$comPort = 3 ;调制解调器所在com口
$callResultArray
$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) 没人知道吗? 电脑状态不正常如何给你电话??例如电脑蓝屏了 回复 3# auto
不是运行的电脑状态检测,是我用一台电脑监控局域网内的别的电脑有没有ping不通的情况,ping工具已经做好了,遇到ping不通的电脑可以PC喇叭报警,测试都正常,现在想通过调制解调器来拨号。
如果纯模拟鼠标按键现在也可以实现,但是觉得不稳定。
想找个可以后台不会被干预的方式! 回复 4# ioripalm
检测电脑是否可以联上互联网?? 回复 5# auto
不可以,都是内网,如果可以我就用发邮件的方式了,因为现在很多邮箱都支持免费的邮件短信提醒。就是因为是内网,所以只能通过电话线来拨号提醒我! 直接自动发消息吧 回复 7# alpin
什么是直接自动发消息?用什么发? 回复 8# ioripalm
例如,让程序自动利用聊天工具QQ发送到另外一个QQ上
这只是个思路。我想这与你的主题偏离了啊 回复 9# alpin
不是说了是内网了!外网就好办了,外网很多邮箱支持邮件电话短信提醒! {:face (229):} 希望楼主能成功。祝你好运。 有高手熟悉这方面的操作吗? http://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/
AT Command 可以 这个不错的想法
页:
[1]
2