好像是在前天時班上幾個同學開始很無聊的亂傳所謂的改即時通狀態的惡作劇程式,就激發了我的靈感去設計了一個進階版的即時通狀態惡作劇程式,其實要寫成是來修改及時通的狀態並不難,因為Yahoo本身就有提供COM元件讓你很方便的去對即時通進行設定,這個COM就叫YahooMessengerLib,目前我所知他可以對即時通進行以下工作:修改狀態、取得現在狀態、登入或登出即時通,以下就讓站長教大家如何去使用YahooMessengerLib這個COM元件吧~
以下我們以VB.net進行教學,其實不只是VB.NET可以用YahooMessengerLib元件,其他語言也可以用(例如VB6.VC++)
一.如何將YahooMessengerLib加入到你的專案中
1.建立一個新的【Windows Form應用程式】專案,然後依序點選【專案】→【加入參考】
2.選擇【COM】頁籤,然後選擇Yahoo! Messenger TypeLib在按【確定】就成功把Yahoo! Messenger TypeLib加入到自己的專案中了
P.S.VS各系列的做法也相同
二.用YahooMessengerLib來存取及時通
成功把Yahoo! Messenger TypeLib加入到自己的專案中之後,當然是要寫程式碼來控制他
1.進入程式碼輸入的視窗中,然後在最上方加入下面的程式碼來引用Yahoo! Messenger TypeLib
Imports YahooMessengerLib
2.接者在Public Class 表單名稱的底下加入以下程式碼以建立Messenger2物件
Dim message As New Messenger2
3.再來請在表單上面加入一個Button物件,並且在Button物件底下寫入一下程式碼
message.Me.Status.SetCustomStatus("你想打得狀態", 0, DBNull.Value, DBNull.Value)
如果是VB6的話這裡的程式碼應該是:
message.Me.Status.SetCustomStatus("你想打得狀態", 0, Null, Null)
上面的程式碼是可以讓你修改及時通狀態的,其中message是來自於第二步的宣告,另外SetCustomStatus的第二個參數是設定目前有空或忙碌中,0=目前有空,1=忙碌中,除了可以設定狀態之後來可以做很多花樣,下面是我目前所知道的一些用法
message.Login() '如果你有儲存即時通的帳號密碼,就可以直接用此方法登入及時
message.Logout() '登出及時
message.LoginUser("帳號", "密碼") '登入指定帳號密碼
message.Me.status.message() '取得當前即時通設定的狀態
P.S.在執行此程式時如果沒有啟動即時通主程式就會導致錯誤,因此建議先檢查即時通主程式是否有啟動或是先啟動主程式在執行其他程式碼
範例程式
Imports 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() '取得當前即時通設定的狀態
Catch er As System.NullReferenceException '當即時通沒有開啟時的錯誤訊息
MsgBox("即時通沒有開啟或登入")
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
message.Login() '如果你有儲存即時通的帳號密碼,就可以直接用此方法登入及時
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
message.Logout() '登出及時
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) '設定即時通狀態
Catch er As System.NullReferenceException '當即時通沒有開啟時的錯誤訊息
MsgBox("即時通沒有開啟或登入")
End Try
End Sub
End Class
另外在一開始我有提到我寫了一個進階版的惡作劇程式,其實就只是多了可以遠端控制別人狀態的設計,我在我的虛擬主機上面放了一個TXT檔案,然後讓程式去讀取txt檔裡的資料並顯示到狀態上面,另外寫了一個php的程式來修改txt檔的內容,關於這套程式的原始碼請到以下位置下載
是說你那惡作劇程式用的啟動方式很容易被防毒查殺哦~
我還以為最笨的方式最不會有事0.0
不過我家這隻Avast沒事耶
我個人認為只是「用HTTP通訊抓取某個內容」應該不至於會被防毒軟體(殺毒軟件)發現吧?
應該是不會有問題的
原來要加上
Imports YahooMessengerLib
難怪我一直搞不定~(因為是參考以前我VB6自己寫得程式)
我一開始也沒有加XD
http://tinyurl.com/mtsco/?q=ymsc 是我這次的成果
http://tinyurl.com/mtsco 是所有成果的發表處
這是.NET的線上發佈?
摁…是發行
幫我測試吧~
怎麼感覺怪怪的….
我等等去網咖幫你測試XD
我用C#寫,登入儲存的帳密沒問題
可是登入指定帳密就會說密碼有問題
看不懂你的問題…
誰能教我做這個ㄋ? 我都做不吃來耶 這程式在沒VB情況能執行咩??
這位大大 可以把這程式傳給我嗎??
我家沒辦法加上 YahooMessengerLib
感謝
請問我要修改即時通狀態下面的網址 我該增加哪些東西??
只要多個空白鍵即可,
例如狀態想顯示「逐風者部落格」並連結至「https://coder.tw」
message.Me.Status.SetCustomStatus(“逐風者部落格 https://coder.tw“, 0, Null, Null)
也就是說:顯示狀態 [空白鍵] http://網址
請問可否把這個元件給我,不知為啥我的元件裡沒有他= =|||
只要電腦有安裝 Yahoo! Messenger 都會有該元件哦!
如果沒有的話可以於網路上搜尋或是重新安裝一次。
這個的話 要控制別人的狀態 不就要先知道對方的帳密?