以下では VB.NET を使って解説しますが、YahooMessengerLib コンポーネントは VB.NET だけでなく、ほかの言語からも利用できます(例:VB6、VC++)。
一.YahooMessengerLib をプロジェクトに追加する
1.【Windows Form アプリケーション】のプロジェクトを新規作成し、【プロジェクト】→【参照の追加】の順にクリックします。2.【COM】タブを選択し、Yahoo! Messenger TypeLib を選んで【OK】をクリックすると、Yahoo! Messenger TypeLib がプロジェクトに追加されます。
P.S. Visual Studio の各バージョンでも手順は同じです。
二.YahooMessengerLib で Yahoo! Messenger にアクセスする
Yahoo! Messenger TypeLib をプロジェクトに追加できたら、次はもちろん、それを制御するコードを書きます。- コードエディターを開き、一番上に次のコードを追加して、Yahoo! Messenger TypeLib を参照します:
Imports YahooMessengerLib- 次に、Public Class フォーム名 の下に次のコードを追加して、Messenger2 オブジェクトを作成します:
Dim message As New Messenger2- 次に、フォームに Button を1つ追加し、Button の下に次のコードを書きます:
message.Me.Status.SetCustomStatus("你想打得狀態", 0, DBNull.Value, DBNull.Value)VB6 の場合、ここのコードは次のようになります:
message.Me.Status.SetCustomStatus("你想打得狀態", 0, Null, Null)上のコードで Yahoo! Messenger のステータスを変更できます。message は手順2で宣言したオブジェクトです。SetCustomStatus の2番目の引数は、空き中か取り込み中かを設定するもので、0 が空き中、1 が取り込み中です。ステータスの設定以外にも、さまざまな使い方があります。以下は、私が現在知っている使い方の一部です:
message.Login() 'Yahoo! Messenger のアカウントとパスワードを保存している場合は、このメソッドで直接ログインできます
message.Logout() 'Yahoo! Messenger からログアウトします
message.LoginUser("帳號", "密碼") '指定したアカウントとパスワードでログインします
message.Me.status.message() '現在 Yahoo! Messenger に設定されているステータスを取得しますP.S. このプログラムを実行したときに Yahoo! Messenger のメインプログラムが起動していないと、エラーになります。そのため、先に Yahoo! Messenger が起動しているかを確認するか、メインプログラムを先に起動してから他のコードを実行することをおすすめします。
サンプルコード
プロジェクトファイルのダウンロード:Xun6 | 4Shared| Box.netImports YahooMessengerLib
Public Class Form1
Dim message As New Messenger2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Label4.Text = message.Me.status.message() 'Yahoo! Messenger に設定されているステータスを取得
Catch er As System.NullReferenceException 'Yahoo! Messenger が開いていないときのエラーメッセージ
MsgBox("即時通沒有開啟或登入")
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
message.Login() 'Yahoo! Messenger のアカウントとパスワードを保存している場合は、このメソッドで直接ログインできます
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
message.Logout() 'Yahoo! Messenger からログアウトします
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
message.LoginUser(TextBox1.Text, TextBox2.Text) '指定したアカウントとパスワードでログインします
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Try
message.Me.Status.SetCustomStatus(TextBox3.Text, 0, DBNull.Value, DBNull.Value) 'Yahoo! Messenger のステータスを設定
Catch er As System.NullReferenceException 'Yahoo! Messenger が開いていないときのエラーメッセージ
MsgBox("即時通沒有開啟或登入")
End Try
End Sub
End Class先ほど、いたずらプログラムの発展版も作ったとお伝えしました。その違いは、他人のステータスを遠隔操作できる仕組みを加えたことだけです。仮想ホストに TXT ファイルを置き、プログラムがその TXT ファイルの内容を読み込んでステータスとして表示するようにしています。さらに、TXT ファイルの内容を書き換える PHP プログラムも書きました。このプログラムのソースコードは、以下からダウンロードできます:




