


[dllimport ( "netapi32" , charset = charset.unicode ) ]
public static extern int netmessagebuffersend (
string servername , //服務器名稱,為null
string fromname , //接收方名稱,可為ip或計算機名稱
string msgname , //信息名稱,為null
string buf , //信息
int buflen ) ; //信息長度
對照netmessagebuffersend函數參數分別輸入相應的接收方名稱和信息內容即可,可見netmessagebuffersend的使用方法還是非常簡單的。下面就來詳細介紹visual c#通過信史服務實現網絡信息傳送的具體實現方法。
三.本文中的程序設計、調試和運行的環境:
(1).微軟公司視窗2000服務器版。
(2).visual studio .net 2003企業構建版,.net framework sdk 1.1版本號4322。
四.visual c#通過信史服務實現網絡信息傳送的具體實現步驟:
以下就是visual c#通過信史服務實現網絡信息傳送的具體實現步驟:
1. 啟動visual studio .net。
2. 選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
3. 將【項目類型】設置為【visual c#項目】。
4. 將【模板】設置為【windows應用程序】。
5. 在【名稱】文本框中輸入【visual c#實現通訊信使】。
6. 在【位置】的文本框中輸入【e:/vs.net項目】,然后單擊【確定】按鈕。這樣在"e:/vs.net項目"目錄中就創建了一個名稱為"visual c#實現通訊信使"的文件夾,里面存放的就是"visual c#實現通訊信使"項目的所有文件。
7. 把visual studio .net的當前窗口切換到【form1.cs(設計)】窗口,并從【工具箱】中的【windows窗體組件】選項卡中往設計窗體中拖入下列組件,并執行相應操作:
二個lable組件。
二個textbox組件,分別用來輸入接收方的ip地址或計算機名和發送信息內容。
一個button按鈕,并在這個組件拖入設計窗口后分別雙擊它們,則系統會在form1.cs中分別產生這一個組件click事件對應的處理代碼。
8. 把visual studio .net的當前窗口切換到form1.cs的代碼編輯窗口,在form1.cs的首部的引入命名空間的代碼區中,用下列代碼替換form1.cs中由系統自動產生的引入命名空間代碼:
using system ;
using system.drawing ;
using system.collections ;
using system.componentmodel ;
using system.windows.forms ;
using system.data ;
using system.runtime.interopservices ;
//申明winapi函數需要使用到此命名空間
private void initializecomponent ( )
{
this.textbox1 = new system.windows.forms.textbox ( ) ;
this.textbox2 = new system.windows.forms.textbox ( ) ;
this.button1 = new system.windows.forms.button ( ) ;
this.label1 = new system.windows.forms.label ( ) ;
this.label2 = new system.windows.forms.label ( ) ;
this.suspendlayout ( ) ;
this.textbox1.location = new system.drawing.point ( 124 , 58 ) ;
this.textbox1.name = "textbox1" ;
this.textbox1.size = new system.drawing.size ( 212 , 21 ) ;
this.textbox1.tabindex = 0 ;
this.textbox1.text = "" ;
this.textbox2.location = new system.drawing.point ( 124 , 126 ) ;
this.textbox2.multiline = true ;
this.textbox2.name = "textbox2" ;
this.textbox2.size = new system.drawing.size ( 212 , 82 ) ;
this.textbox2.tabindex = 1 ;
this.textbox2.text = "" ;
this.button1.location = new system.drawing.point ( 122 , 232 ) ;
this.button1.name = "button1" ;
this.button1.size = new system.drawing.size ( 106 , 36 ) ;
this.button1.tabindex = 3 ;
this.button1.text = "發送" ;
this.button1.click += new system.eventhandler ( this.button1_click ) ;
this.label1.location = new system.drawing.point ( 8 , 66 ) ;
this.label1.name = "label1" ;
this.label1.size = new system.drawing.size ( 132 , 23 ) ;
this.label1.tabindex = 4 ;
this.label1.text = "ip地址或計算機名:" ;
this.label2.location = new system.drawing.point ( 78 , 134 ) ;
this.label2.name = "label2" ;
this.label2.size = new system.drawing.size ( 46 , 23 ) ;
this.label2.tabindex = 5 ;
this.label2.text = "內容:" ;
this.autoscalebasesize = new system.drawing.size ( 6 , 14 ) ;
this.clientsize = new system.drawing.size ( 356 , 297 ) ;
this.controls.add ( this.button1 ) ;
this.controls.add ( this.textbox2 ) ;
this.controls.add ( this.textbox1 ) ;
this.controls.add ( this.label2 ) ;
this.controls.add ( this.label1 ) ;
this.formborderstyle = system.windows.forms.formborderstyle.fixedsingle ;
this.maximizebox = false ;
this.name = "form1" ;
this.text = "visual c#實現通訊信使" ;
this.resumelayout ( false ) ;
}

private void button1_click ( object sender , system.eventargs e )
{
byte [ ] bbuffer = system.text.encoding.unicode.getbytes ( textbox2.text );
int nret = netmessagebuffersend ( null , textbox1.text , null , textbox2.text , textbox2.text.length * 2 + 2 ) ;
}
[dllimport ( "netapi32" , charset = charset.unicode ) ]
public static extern int netmessagebuffersend (
string servername , //服務器名稱,為null
string fromname , //接收方名稱,可為ip或計算機名稱
string msgname , //信息名稱,為null
string buf , //信息
int buflen ) ; //信息長度
新聞熱點
疑難解答