打造Windows信使服務(wù)程序
信使服務(wù)是Windows 2000/XP下面的一種通信服務(wù),通過它我們可以在網(wǎng)上象QQ一樣進行實時的交流,但和QQ不同的是信使服務(wù)不需要擁有一個號碼,它只要知道對方的IP地址--如果在局域網(wǎng)中,只要知道對方的計算機名就可以了。我們可以利用"net send"在命令行下面發(fā)送消息,也可以通過"控制面板-管理工具-計算機管理"中的"操作"菜單里面的"所有任務(wù)-發(fā)送控制臺消息…"來發(fā)送。接收方的計算機要求必須是Win2000/XP,因為 Win9x本身是不提供信服服務(wù)的,除非你手動啟動了WinPopup.。程序編譯運行后,在Windows2000下啟動控制臺,輸入:netsend 192.168.0.10 127.0.0.1 "我的信使程序!"運行以上命令后,在Windows桌面上將彈出一個對話框,其上標(biāo)有"我的信使程序!"字符和相關(guān)IP信息。
一、實現(xiàn)方法
信使服務(wù)為大家在網(wǎng)絡(luò)上提供了簡便、快捷的聊天方式,所以網(wǎng)上也有一些改進了的信使服務(wù)發(fā)送程序,使信息的發(fā)送可以按照自己的意愿來進行而不受微軟提供的"net send"所限制。如果你經(jīng)常上網(wǎng),也許會收到通過信使服務(wù)發(fā)來的廣告或者其他莫名其妙的信息,而在"信使服務(wù)"窗口中所顯示出來的發(fā)送方的計算機名或者IP地址和你自己的竟然一樣。如果你遇到過這種情況,那么你想不想知道這種改進了的信使服務(wù)發(fā)送程序是怎么實現(xiàn)的呢?
本實例將要帶你去剖析一下Windows的信使服務(wù),我們將從一個程序員的角度來看看這個信使服務(wù)發(fā)送程序是如何實現(xiàn)的。其實實現(xiàn)信使服務(wù)的整個過程很簡單,我們只需要調(diào)用一個API函數(shù):
NET_API_STATUS NetMessageBufferSend(
LPWSTR servername,
LPWSTR msgname,
LPWSTR fromname,
LPBYTE buf,
DWORD buflen
);
其中該函數(shù)的參數(shù)說明如下:
servername:計算機名,該函數(shù)將在指定的這個計算機上面執(zhí)行。如果為NULL,則表示為本地計算機,通常我們都將其設(shè)置為NULL。
msgname:目標(biāo)計算機的名字或者IP地址。
fromname:源計算機的名字或者IP地址。
buf:指向一個信息緩沖區(qū)的指針,在這里你可以填上你想發(fā)送的信息。要注意的是,這個參數(shù)用的是Unicode編碼。
buflen:上述信息緩沖區(qū)中的字節(jié)數(shù)。
現(xiàn)在函數(shù)已經(jīng)介紹完了,通過這個函數(shù)我們可以發(fā)現(xiàn)如果想實現(xiàn)匿名的信使服務(wù)實在是太簡單--只需要在fromname中填上一個假冒的計算機名或者IP地址就行了。下面給出一個實際例子,在這個程序中,我們從命令行參數(shù)接受目標(biāo)計算機和源計算機名字(IP地址),同時我們還可以設(shè)定信息發(fā)送的次數(shù)。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |