kk_lee69 发表于 2012-1-31 16:40:18

轉貼---Autoit 控制Skype 撥打電話 發送訊息....範例教學

轉貼原文出處....

http://payne.world.edoors.com/CMuhNRMuD8wQ



Autoit腳本控制Skype(1) - 必要條件與起步


必要條件:

要先安裝Skype 3.x版,最好是3.5以上
要去下載Skype4com文件回來閱讀參考
https://developer.skype.com/Download?action=AttachFile&do=get&target=Skype4COM-1.0.28.2.zip

如何開始:(這一步可是絕招,沒了他就什麽都甭談)

;開啟 Skype4COM 物件
$oSkype = ObjCreate("Skype4COM.Skype")
;設定Skype_開頭的副程式皆為skype event處理程式
$SinkObject=ObjEvent($oSkype,"Skype_")
;設定如果發生錯誤的時候跳到AuoitError()副程式
$oMyError=ObjEvent("AutoIt.Error","AutoitError")

接下來就可以放你的其他skype控制指令了
(記得skype要先啟動,然後執行上頭的指令就會觸動skype跳出是否允許的對話框,選擇永久允許)

如果你說:「看不懂」,嘿嘿,我只能說「你非本道中人」


============================================================================

Autoit腳本控制Skype(2) - 自動偵測啟動Skype


如何讓程式自動偵測Skype尚未啟動時就自動去執行Skype呢?
以下是範例,要結合上次的指令

;開啟 Skype4COM 物件
$oSkype = ObjCreate("Skype4COM.Skype")
;設定Skype_開頭的副程式皆為skype event處理程式
$SinkObject=ObjEvent($oSkype,"Skype_")
;設定如果發生錯誤的時候跳到AuoitError()副程式
$oMyError=ObjEvent("AutoIt.Error","AutoitError")

;如果skype尚未啟動則啟動之
If Not $oSkype.Client.IsRunning Then ;檢測是否有開啟skype
$oSkype.Client.Start() ;把 skype 打開
sleep (7500) ;休息7500毫秒(等待Skype程式劃面出現)
Endif
$oSkype.Attach() ;開始接受skype event傳入

如果還是看不太懂,那就抄下來吧,跑一下就知道效果了


===================================================================

Autoit腳本控制Skype(3) - 發送文字訊息


如果要發一個文字訊息給特定對象該怎麼寫呢? 以下就是一個範例,利用 SendMessage() 指令


;開啟 Skype4COM 物件
$oSkype = ObjCreate("Skype4COM.Skype")
;設定Skype_開頭的副程式皆為skype event處理程式
$SinkObject=ObjEvent($oSkype,"Skype_")
;設定如果發生錯誤的時候跳到AuoitError()副程式
$oMyError=ObjEvent("AutoIt.Error","AutoitError")

;如果skype尚未啟動則啟動之
If Not $oSkype.Client.IsRunning Then ;檢測是否有開啟skype
$oSkype.Client.Start() ;把 skype 打開
sleep (7500) ;休息7500毫秒(等待Skype程式劃面出現)
Endif
$oSkype.Attach() ;開始接受skype event傳入

;發送訊息給某skype 帳號
$account = "echo1230000"
$message="你好啊!"
$oSkype.SendMessage($account,$message)



=========================================================================

Autoit腳本控制Skype(4) - 撥打電話


如果要撥打Skype電話或是Skypeout電話給特定對象該怎麼寫呢? 以下就是一個範例,利用 PlaceCall() 指令

;開啟 Skype4COM 物件

$oSkype = ObjCreate("Skype4COM.Skype")
;設定Skype_開頭的副程式皆為skype event處理程式
$SinkObject=ObjEvent($oSkype,"Skype_")
;設定如果發生錯誤的時候跳到AuoitError()副程式
$oMyError=ObjEvent("AutoIt.Error","AutoitError")

;如果skype尚未啟動則啟動之
If Not $oSkype.Client.IsRunning Then ;檢測是否有開啟skype
$oSkype.Client.Start() ;把 skype 打開
sleep (7500) ;休息7500毫秒(等待Skype程式劃面出現)
Endif
$oSkype.Attach() ;開始接受skype event傳入

;撥電話給某skype 帳號
$account = "echo1230000"
$oSkype.Placecall($account)

;要打skypeout就把帳號換成真實電話號碼就可以
$PhoneNo="+88634567890"
$oSkype.Placecall($PhoneNo)

半芯竹 发表于 2012-1-31 16:53:13

挺详细的说明,谢谢了,有空测试一下。。

lpxx 发表于 2012-1-31 17:30:24

看这繁体字还真累

menfan1 发表于 2012-1-31 17:39:59

没用过Skype,有空玩下

zhongzijie 发表于 2012-2-5 23:11:45

谢谢楼主分享

网络书生 发表于 2013-9-14 11:26:40

怎么挂电话呢

网络书生 发表于 2013-9-14 11:41:03

怎么挂电话呢?

夏先知 发表于 2013-9-25 07:42:35

這樣掛電話
$icall=$oSkype.Placecall($PhoneNo)
$icall.finish

夏先知 发表于 2013-9-25 07:46:33

更多的skype控制文章,请看我的博客
http://autoit.sytes.net

这里的转贴文章的作者就是本人,请多来我的新家坐
页: [1]
查看完整版本: 轉貼---Autoit 控制Skype 撥打電話 發送訊息....範例教學