• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Thực thi lệnh NET SEND trong C#

Các thủ thuật về hệ thống, thư mục, tập tin và mạng

Moderators: tungcan5diop, QUANITGROBEST

neverland87
Guru
Guru
Posts: 490
Joined: Sat 26/05/2007 4:31 pm
Been thanked: 8 times

Thực thi lệnh NET SEND trong C#

Postby neverland87 » Mon 09/06/2008 9:32 am

Thủ thuật: Thực thi lệnh NET SEND trong C#
Tác giả: neverland87
Mô tả: Dễ hiểu


Có bao giờ bạn thử dùng lệnh NET SEND trong các HDH: Windows 2000 hoặc XP để gửi tin nhắn đến các máy trong mạng cục bộ chưa? Nếu thế, ắt hẳn bạn bạn đã biết chức năng của lệnh này. Tuy nhiên, đấy là làm trong môi trường dòng lệnh DOS, nếu bạn muốn tự thiết kế chương trình WinForms để thực hiện dòng lệnh này thì đoạn code mẫu sau sẽ là giải pháp cho bạn, tất nhiên, để dễ minh họa, mình dùng Console Application:

Code: Select all

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5. using System.IO;
  6. using System.Diagnostics;
  7.  
  8. namespace ConsoleApplication2
  9. {
  10.     class Program
  11.     {
  12.         protected string strThongDiep="";
  13.         protected string strTenHost="";
  14.         static void Main(string[] args)
  15.         {
  16.             Program p = new Program();
  17.             p.NetSend("PC16", "Noi dung tin nhan");
  18.         }
  19.         public void NetSend(string strTenHost, string strThongDiep)
  20.         {
  21.             this.strTenHost = strTenHost;
  22.             this.strThongDiep = strThongDiep;
  23.             ThreadStart tStart = new ThreadStart(SendMessageThread);
  24.             Thread senderThread = new Thread(tStart);
  25.             senderThread.Start();
  26.         }
  27.         public void SendMessageThread()
  28.         {
  29.             try
  30.             {
  31.                 string strLine = "net send " + this.strTenHost + " " + this.strThongDiep + @" >C:\netsend.log";
  32.                 FileStream fs = new FileStream(@"c:\netsend.bat", FileMode.Create, FileAccess.Write);
  33.                 StreamWriter streamWriter = new StreamWriter(fs);
  34.                 streamWriter.BaseStream.Seek(0, SeekOrigin.End);
  35.                 streamWriter.Write(strLine);
  36.                 streamWriter.Flush();
  37.                 streamWriter.Close();
  38.                 fs.Close();
  39.  
  40.                 Process p = new Process();
  41.                 p.StartInfo.FileName = @"C:\netsend.bat";
  42.                 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
  43.                 p.Start();
  44.                 p.WaitForExit();
  45.                 p.Close();
  46.  
  47.                 FileStream fsOutput = new FileStream(@"C:\netsend.log", FileMode.Open, FileAccess.Read);
  48.                 StreamReader reader = new StreamReader(fsOutput);
  49.                 reader.BaseStream.Seek(0, SeekOrigin.Begin);
  50.                 string strOut = reader.ReadLine();
  51.                 reader.Close();
  52.                 fsOutput.Close();
  53.             }
  54.             catch (Exception)
  55.             {
  56.  
  57.                
  58.             }
  59.         }
  60.     }
  61. }


Ý tưởng của đoạn code trên là ghi dòng lệnh "NET SEND <tên host> <thông điệp>" vào tập tin netsend.bat và ghi thông tin kết quả vào netsend.log. Dùng Process để chạy tập tin netsend.bat, sau đó kết quả của lệnh này, sẽ được ghi vào tập tin netsend.log.
Tất nhiên, khi phát triển ứng dụng win form thì bạn cần 3 cái textbox: 1 cái để nhập tên host, 1 cái để ghi thông điệp muốn gửi, cái còn lại ghi ra kết quả của NET SEND (vì có nó thể thành công hay thất bại)


SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT

Return to “[.NET] Hệ thống - Tập tin - Thư mục và Mạng”

Who is online

Users browsing this forum: No registered users and 0 guests