網路上有幾則 利用 Skype4COM 控制SKYPE 的 AUTOIT 語法範例.....不過都是簡單的例子.....所能查到的資料有限.....
雖然資料其實都找的到....但是 自己對於程式 還有官方的原文說明文件......實在看不懂....呵呵.....所以只能上來這求助....
我的需求其實很簡單.....我只是希望可以對SKYPE的群組聊天室發送文字訊息 .....就可以了.....網上有對SKYPE帳號發送訊息的範例....這個會了...
但是 測試不出來 對著群組發送訊息.....網上也有從創見群組...然後對群組發訊息 然後離開的例子.....但是 跟我的需要不一樣....
我需要的是 不要創建群組....是要對著 已經存在的群組發送訊息................
使用Skype4COM控制SKYPE API 在這個網站看到的資料是不多的....看來很少人用................所以希望這個帖子 可以找出對這個有興趣或者有使用過的人 一起來研究看看
以下是我整理最近找到的資料.....提供給有興趣的人一起來研究看看...........
SKYPE 官方提供的 Skype4COM 程式 以及 TRACERT.EXE 程式....還有 Skype4COM 的官方說明文檔...
http://developer.skype.com/accessories
安裝上述的 程式後...就可以跟SKYPE 溝通........
網上找到的 Skype4COM 控制SKYPE 的 AUTOIT 語法範例 可對 使用者發送訊息......
http://payne.world.edoors.com/CLRTVpSFi_6o
;開啟 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)
上面的範例是對著 單一使用者發送消息.....但是我需要的是 對整個群組.........
另外在提供 從創建群組 跟著 加入使用者然後發送訊息....然後離開的範例....
;// Create a Skype4COM object:
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkypeEvent = ObjEvent($oSkype,"Skype_")
$oError = ObjEvent("AutoIt.Error","MyErrFunc")
;// Start the Skype client:
If Not $oSkype.Client.IsRunning Then
$oSkype.Client.Start()
EndIf
;// Verify that a user is signed in and online before continuing
While 1
If $oSkype.CurrentUserStatus = $oSkype.Convert.TextToUserStatus("ONLINE") Then
ExitLoop
Else
$oSkype.ChangeUserStatus($oSkype.Convert.TextToUserStatus("ONLINE"))
EndIf
Sleep(1000)
WEnd
;// Create a UserCollection object and add the multichat users to this collection:
$oMembers = ObjCreate("Skype4COM.UserCollection")
$oMembers.Add($oSkype.User("skypeuser2"))
$oMembers.Add($oSkype.User("skypeuser3"))
;// Create a multichat:
$oChat = $oSkype.CreateChatMultiple($oMembers)
;// Open a chat window:
$oChat.OpenWindow
;// Set a chat topic:
$oChat.Topic = "Skype is cool"
;// Send a chat message:
$oMsg = $oChat.SendMessage("Greetings!")
;// Leave a chat:
$oChat.Leave
;// The AttachmentStatus event handler monitors attachment status and automatically attempts to reattach to the API following loss of connection:
Func Skype_AttachmentStatus($aStatus)
MsgBox(0,"","Attachment status " & $oSkype.Convert.AttachmentStatusToText($aStatus))
If $aStatus = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Then
$oSkype.Attach()
EndIf
EndFunc
Func MyErrFunc()
;Do Nothing
EndFunc
另外在提供 在AU3官方網站上面找到的 SKYPE的資料.....
http://www.autoitscript.com/forum/topic/121767-skype-com/
http://www.autoitscript.com/foru ... mples-skype4comlib/
http://www.autoitscript.com/foru ... -library-skype4com/
至於我的問題.....網上其實有找到類似的問與答....可是只能找到C 跟 VB 的範例....... 我自己測試半天 測試不成功....所以來這 找高手幫忙...
以下是我找到的 問與答 跟 程式的範例......
http://community.skype.com/t5/Pu ... o-a-group/td-p/6526
http://forum.skype.com/index.php?showtopic=745303Here is a C# example:
IChat ichat = skype.get_Chat("#echo123.one/$d5a7bf8081183a4b");
ichat.SendMessage("Hi everybody");
//說明:NOTE: For example in the MessageStatus event you can get the name of a chat from the chat message itself:
chatmessage.Chat.Name
//說明:So from within the MessageStatus event you could now do:
IChat ichat = skype.get_Chat(chatmessage.Chat.Name);
ichat.SendMessage("Welcome Everyone");
Example, in VB:
oSkype = New SKYPE4COMLib.Skype
Dim oChat As New SKYPE4COMLib.Chat
oChat = oSkype.Chat("xyz")
oChat.SendMessage("Hi There")
希望有高手 可以幫忙寫個範例看看 謝謝 |