• 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

Điều hành viên: tungcan5diop, QUANITGROBEST

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

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

Gửi bàigửi bởi neverland87 » T.Hai 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:

Mã: Chọn hết

  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

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

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách