とりあえず動くものを作ってみました。簡単ですがはまった……w
Skype APIは更新されていないイメージですがどうなんでしょう。調べていません。とりあえず以下の内容でSkype3.8.0と合わせて動きました。
まず、Docs/Skype4COM - Skype Developer Zone からSkype4COMをダウンロードします。バージョンは、1.0.28でした。
VB.NETのプロジェクトでSkype4COM.dllの参照を追加します → Interop.SKYPE4COMLib.dllとしてコピーされる。
コードにて、
Private WithEvents Skype As SKYPE4COMLib.Skype
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Skype = New SKYPE4COMLib.Skype
If Not Skype.Client.IsRunning Then
' 起動していない
End If
Skype.Attach(7, False)
End Sub
こんな感じでオブジェクトを生成、利用。
メッセージ受信時にはMessageStatusイベントが発生するようです。あとはフィーリングで。
Private Sub Skype_MessageStatus(ByVal pMessage As SKYPE4COMLib.ChatMessage, ByVal Status As SKYPE4COMLib.TChatMessageStatus) Handles Skype.MessageStatus
If Status = SKYPE4COMLib.TChatMessageStatus.cmsReceived OrElse _
Status = SKYPE4COMLib.TChatMessageStatus.cmsSending Then
Dim line = String.Format("{0} {1} {2}: {3}", pMessage.Chat.FriendlyName, pMessage.Timestamp, pMessage.FromDisplayName, pMessage.Body)
Console.WriteLine(line)
End If
End Sub
はまったところ。
- ターゲットはx86を選択すること。
- 管理者権限でVSを起動しない。
以上です。