kk_lee69 发表于 2011-10-25 23:36:12

使用Skype4COM控制SKYPE API...如何對群組發送訊息??

網路上有幾則 利用 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/forum/topic/72869-skype-com-examples-skype4comlib/
http://www.autoitscript.com/forum/topic/75056-skype-udf-library-skype4com/

至於我的問題.....網上其實有找到類似的問與答....可是只能找到C 跟 VB 的範例....... 我自己測試半天測試不成功....所以來這 找高手幫忙...
以下是我找到的 問與答 跟 程式的範例......
http://community.skype.com/t5/Public-API/Sending-a-message-to-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")

希望有高手 可以幫忙寫個範例看看謝謝

kk_lee69 发表于 2011-10-28 01:27:57

有沒有人認識 叫做夏先知的.....網上的是他的範例 應該也會來這逛吧@@
页: [1]
查看完整版本: 使用Skype4COM控制SKYPE API...如何對群組發送訊息??