Thiết kế các module chơng trình

Một phần của tài liệu Quản lý phòng máy tính (Trang 21 - 43)

2.2 Thiết kế chơng trình chơng trình quản lý phòng máy

2.2.2 Thiết kế các module chơng trình

Ngôn ngữ dùng để thiết kế chơng trình “Quản lý phòng máy tính” là Visual Studio 2008. Visual Studio 2008 là ngôn ngữ lập trình bậc cao đợc sử dụng phổ biến hiện nay. Visual Studio 2008 hớng tới phát triển .Net Framework phiên bản 2.0, 3.0 và 3.5. Nó có nhiều điểm đặc biệt hơn Visual Studio 2005.

Visual studio 2008 đa ra một tính năng đặc biệt là XAML – trình thiết kế văn bản, LINQ to SQL dùng để mô tả các kiểu ánh xạ và sự đóng gói cho đối tợng SQL server, trình gỡ rối XSLT giúp cho ngời sử dụng có thể xác định các lỗi xẫy

ra nhanh hơn. ngoài ra Visual Studio 2008 có hàm API hổ trợ nhiều phơng thức giúp thao tác vào hệ điều hành dễ dàng hơn.

Giao thức đợc sử dụng trong quá trình giao tiếp giữa máy chủ và máy khách là giao thức UDP. Giao thức đợc sử dụng để truyền các đoạn tin nhỏ, truyền gói tin nhanh, nhng là gia thức không hớng kết nối.

a.Các module của Server

- Lớp ConnectionDB.cs – dùng để kết nối với cơ sở dữ liệu SQL server 2005

Các biến trong lớp ConnectionDB.cs

public static SqlCommand sqlComm;//

public static SqlConnection sqlConn;

public static SqlDataAdapter sqlAdapter;

public static SqlDataReader sqlReader;

public static DataSet myDataset;

Gồm có 2 phơng thức tĩnh(static):

+ Phơng thức OpenData: dùng để mở kết nối với cơ sở dữ liệu

public static void OpenData() {

string connectString = "Data Source=TRANHIEN\\SQLEXPRESS;Initial Catalog=Doan;Integrated Security=True";

sqlConn = new SqlConnection(connectString);

try {

if (sqlConn.State != ConnectionState.Open) {

sqlConn.Open();

} }

catch (SqlException ex) {

error = ex.Message;

} }

+ Phơng thức CloseData: dùng để đóng kết nối cơ sở dữ liệu

if (sqlConn.State != ConnectionState.Closed) {

sqlConn.Close();

sqlConn.Dispose();

} }

- Lớp executeQueryData.cs: dùng để thực hiện truy vấn cơ sở dữ liệu, lớp này đợc kế thừa từ lớp ConnectionDB.cs

Gồm phơng thức tĩnh queryData là phơng thức chồng: phơng thức thực hiện các truy vấn thông qua các tên của thủ tục(StoreProcudre) đã đợc viết sẵn trong cơ sở dữ liệu, phơng thức trả về true trong trờng hợp truy vấn thành công ngợc lại trả về false.

public static bool queryData(string storeName)- storeName là tên của thủ tục(StoreProdure) trong cơ sở dữ liệu.

public static bool queryData(string storeName,string[]Paramaters,string[]

values) {

// mo ket noi OpenData();

sqlComm = new System.Data.SqlClient.SqlCommand();

sqlComm.CommandText = storeName;

sqlComm.Connection = sqlConn;

sqlComm.CommandType = System.Data.CommandType.StoredProcedure;

//truyen du lieu va tham so vao sql

for (int i = 0; i < Paramaters.Length; i++) {

sqlComm.Parameters.AddWithValue(Paramaters[i], values[i]);

} try {

sqlComm.ExecuteNonQuery();

CloseData();

return true;

}

catch (Exception ex) {

sqlConn.Close();

error = ex.Message;

return false;

}

-Líp QueryDB.cs

Lớp này đợc kế thừa từ lớp executeQueryData, bao gồm các phơng thức tĩnh(static) nh sau:

+ Phơng thức tĩnh(static) Insert là một phơng thức chồng: phơng thức chỉ có một tham số và kiểu dữ liệu của nó là một trong các đối tợng: computerInfo, userInfo, Cardinfo, OrderInfo, Order_Detail, csEventViewer.

VÝ dô.

Muốn thêm dữ liệu vào bảng tblcomputer thì phơng thức là:

public static bool Insert(computerInfo _computerInfo) {

string[] parametrs = new string[] { "@ComputerName", "@IPAddress" };

string[] values = new string[]

{_computerInfo.ComputerName,_computerInfo.IPAddress };

return excuteQueryData.queryData("tblComputer_Insert", parametrs, values);

}

Muốn thêm dữ liệu vào bảng tblCard thì ta có:

public static bool Insert(CardInfo _cardInfo) {

string[] parametrs = new string[] { "@UserName",

"@TotalMoney","@timeLimited" };

string[] values = new string[] { _cardInfo.UserName, _cardInfo.TotalMoney.ToString(),_cardInfo.TimeLimited.ToString() };

return excuteQueryData.queryData("tblCard_Insert", parametrs, values);

}

+ Phơng thức tĩnh(static) Update là một phơng thức chồng: Phơng thức chỉ có một tham số truyền và kiểu dữ liệu là một đối tợng(class).

vÝ dô.

- Khi cập nhật dữ liệu vào bảng tblCard trong cơ sở dữ liệu thì ta có:

public static bool Update(CardInfo _card) {

string[] Paramater = new string[] { "@UserName", "@time" };

string[] Values = new string[] { _card.UserName, _card.TimeLimited.ToString() };

return excuteQueryData.queryData("tblCard_UpdateTime", Paramater, Values);

}

- Khi ta muốn cập vào bảng tblOrderDetail trong cơ sở dữ liệu thì

public static bool Update(OrderDetail _orderDetail) {

string[] Paramater=new string[] { "@ID", "@name", "@type", "@price" };

string[] Value = new string[] { _orderDetail.OrderID.ToString(), _orderDetail.OrderName, _orderDetail.Type, _orderDetail.Price };

return excuteQueryData.queryData("tblOderDetail_Update", Paramater, Value);

}

+ Phơng thức tĩnh(static) getTable:

Là phơng thức thực hiện câu lênh select trong sql, phơng thức này là một phơng thức chồng. Kiểu dữ liệu trả về là Datatable

Trong trờng hợp câu lệnh select không có tham số truyền vào thì phơng thức getTable là:

public static DataTable getTable(string storeProcedureName) {

DataTable tb = new DataTable();

OpenData();

sqlComm = new SqlCommand();

sqlComm.CommandText = storeName;

sqlComm.Connection = sqlConn;

sqlComm.CommandType = CommandType.StoredProcedure;

try {

sqlAdapter = new

System.Data.SqlClient.SqlDataAdapter(sqlComm);

msqlAdapter.Fill(tb);

sqlAdapter.Dispose();

}

finally { CloseData(); } return tb;

Trong trờng hợp câu lệnh select có tham số thì phơng thức là getTable:

public static DataTable getTable(string storeProcedure, string _paramater, string _value)

{

DataTable tb = new DataTable();

OpenData();

sqlComm = new SqlCommand();

sqlComm.CommandText = storeName;

sqlComm.Connection = sqlConn;

sqlComm.Parameters.AddWithValue(_paramater, _value);

sqlComm.CommandType = CommandType.StoredProcedure;

try {

sqlAdapter = new SqlDataAdapter(sqlComm);

sqlAdapter.Fill(tb);

sqlAdapter.Dispose();

}

finally { CloseData(); } return tb;

}

- Lớp computerInfo.cs – các thuộc tính của lớp là các cột trong bảng tblcomputer :

public class computerInfo {

string _computerName;

public string ComputerName {

get { return _computerName; } set { _computerName = value; } }

string _ipaddress;

public string IPAddress {

get { return _ipaddress; } set { _ipaddress = value; } }

- Lớp CardInfo.cs : các thuộc tính của lớp tơng ứng là cột của bảng

public class CardInfo {

string _cadrdID;

public string CardID {

get { return _cadrdID; } set { _cadrdID = value; } }

string _userName;

public string UserName {

get { return _userName; } set { _userName = value; } }

int _totalMoney;

public int TotalMoney {

get { return _totalMoney; } set { _totalMoney = value; } }

int _totalTime=0;

public int TimeLimited {

get { return _totalTime; } set { _totalTime = value; } }

}

- Các lớp còn lại nh: UserInfo.cs, Order_Detail.cs, Computer_UserInfo.cs, csEvetnViewer.cs cũng đợc xây dựng tơng tự.

- Líp Remote.cs :

Là lớp bao gồm nhiều phơng thức dùng để điều khiển máy khách.

+ Phơng thức SenControl:

- là phơng thức thực hiện gửi các message xuống máy trạm - phơng thức này có 3 tham số: udpclient, string, string các message gửi xuống máy khách gồm hai phần:

- phần 1: phần mã lệnh, phần này gồm 10 ký tự - phần 2: tên máy chủ, các thông tin khác.

các message sẽ đợc đổi sang mảng byte để truyền.

public static bool SendControl(UdpClient m_client,string clientName, string Frame)

{

try {

byte[] Data = Encoding.ASCII.GetBytes(Frame);

m_client.Send(Data, Data.Length, clientName, 5001);

return true;

} catch {

return false;

} }

Khi muốn gửi một yêu cầu xuống máy khách thì ta có:

Remote.SendControl(udpclient, tên_máy_nhận, mã_lệnh).

+ Phơng thức tĩnh(static) Lock, Unlock: là hai phơng thức thực hiện chức năng điều khiển khóa máy, mở khóa máy khách

public static void Lock(UdpClient m_client, string ClientName) {

// lệnh yêu khóa máy

string cmdCode = "Lock______"+ Tên_máy_chủ;

// lệnh yêu cầu mở khóa

//cmdcode = "UnLock____" + tên_máy_chủ;

SendControl(m_client, ClientName, cmdCode);

}

+ Phơng thức login, logout: là hai phơng thức cho phép, không cho phép ngời dùng sử dụng máy tính. Mã lệnh là

Trờng hợp cho phép sử dụng: cmdCode = "afxLogin__"+tờn_mỏy_chủ;

Trờng hợp không cho phép sử dụng: cmdCode="Logout____" + tên_máy_chủ;

+ Phơng thức Shutdown, Reset, Hirbnate, Standby: các phơng thức này gọi phơng thức SendControl(m_client, ClientName, cmdCode) để thực hiện chức năng điều khiển tắt máy, khởi động lại, ngủ đông và standby máy

khách(client).Các phơng thức này có hai tham số truyền vào, có kiểu dữ liệu là UDPClient và string.

cmdCode là các mã lệnh tơng ứng nh sau :

- phơng thức Shutdown : cmdCode = "Shutdown__"+Tờn_mỏy_chủ;

- phơng thức Reset : cmdCode = "Reset_____" + Tờn_mỏy_chủ;

- phơng thức Hibernate : cmdCode = "Hibernate_" + Tờn_mỏy_chủ;

- phơng thúc Standby: cmdCode = "Standby___" + Tờn_mỏy_chủ;

+ Phơng thức send: phơng thức này gửi yêu cầu máy khách bật tính tính chat.

public static void Send(UdpClient m_client, string clientName) {

string cmdCode = "Chat______";

string packet = cmdCode + SystemInformation.ComputerName;

byte[] Data = Encoding.ASCII.GetBytes(packet);

m_client.Send(Data, Data.Length, clientName, 5001);

}

+ Phơng thức chatclient: phơng thức chuyển các message chat xuống máy máy khách

public static void clientChat(UdpClient m_client, string ClientName, string message)

{

string msg = tên_máy_chủ +" :" + message;

byte[] Data = Encoding.Unicode.GetBytes(msg);

try {

m_client.Send(Data, Data.Length, ClientName, 5002);

}

catch (System.Net.Sockets.SocketException er) {

MessageBox.Show(er.Message);

return;

} }

+ Phơng thức getDirAndFile: là phơng thức yêu cầu máy khác gửi các thông tin về th mục,ổ đĩa, file trên máy khách.

public static void getDirAndFile(UdpClient m_client, string clientName, string command)

{

string frame = command + "*" + SystemInformation.ComputerName;

byte[] Data = Encoding.ASCII.GetBytes(frame);

try {

m_client.Send(Data, Data.Length, clientName, 5001);

} catch { } }

+ Phơng thức createFolder: phơng thức yêu cầu máy khách tạo một th mục theo đờng dẫn mà máy chủ gửi xuống.

public static void CreateFolder(UdpClient m_client, string clientName, string FullPaht, string FolderName)

{

string frame = "CreateFold";// command

frame += FullPaht;// duong dan tao thu muc moi frame += "*" + FolderName;

SendControl(m_client, clientName, frame);

}

+ Phơng thức deleteFolder: phơng thức yêu cầu máy khách xóa th mục theo đờng dẫn mà máy chủ gửi xuống.

public static void DeleteFolder(UdpClient m_client, string ClientName, string FullPath)

{

string frame = "DeleteFold";

frame += FullPath;

SendControl(m_client, ClientName, frame);

}

- Líp Server.cs:

- Các namespace cần thiết đợc thêm vào:

- System.Net: líp IPEndpoint, …

- System.Net.Sockets: líp UDPClient, ...

- System.Threading : Líp Thread.

- Phơng thức ServerStart và phơng thức Waitmessage:

Thực hiện mở cổng để nhận các message từ máy khách gửi lên, khởi tạo một Thread(luồng) riêng để nhận các message.

public bool ServerStart() {

try {

endpoint = new IPEndPoint(IPAddress.Any, 0);

client = new UdpClient(5000);

Thread srvReceive = new Thread(new ThreadStart(WaitMessage));

srvReceive.Start();

return true;

}

catch (Exception err) {

// client.Close();

Remote.saveEvent(err.Message, 0, "Server");

return false;

} }

public void WaitMessage() {

while (true) {

// byte[] msg = new byte[1024];

try {

data = client.Receive(ref endpoint);

if (data.Length > 0)

ProcessReceived(data);

}

catch(SocketException er) {

Remote.saveEvent(er.Message, 0, "Server");

} } }

- Phơng thức ProcessReceived:

Phơng thức này thực hiện cắt mảng byte nhận đợc từ máy khách(client)

Phần 1 : gồm 10 byte đầu tiên trong mảng byte. Phần mã lệnh

Phần 2. là phần còn lại sau khi đã cắt 10 ví trí đầu của mảng byte.

Phần thông tin

Đoạn thuật toán cắt:

for (int i = 0; i < msg.Length; i++) {

if (i < 10) {

Phan1[i] = msg[i];

} else {

Phan2[j++] = msg[i];

} }

- Phơng thức ProcessInfo:

Phơng thức này chuyển mảng 10 ký tự mà phơng thức ProcessReceived đã tách thành xâu sau đó dùng một switch … case để xử lý từng mã lệnh tơng ứng do máy khách gửi lên.

- Phơng thức Login: phơng thức xử lý các thông tin đăng nhập mà máy khách gửi lên. Có hai trờng hợp đăng nhập có thể xẩy ra.

+ trờng hợp ngời dùng có tài khoản đăng nhập:

Kiểm tra xem số thời gian cho phép sử dụng của tài khoản có còn tiền nữa không, nếu hết thì thông báo.

Kiểm tra xem tài khoản này có đang đợc đăng nhập hay không(một tài khoản không thể cùng lúc sử dụng trên hai máy). thông báo lỗi nếu tài khoản là đang đợc sử dụng

+ trờng hợp không có tài khoản:

Không cho phép đăng nhập, chỉ khi ngời quản trị cho phép thì ngời dùng mới đợc đăng nhập.

- Phơng thức Disconnect(): phơng thức dùng để kiểm tra trạng thái kết nối của các máy khách. Nếu có máy nào đứt kết nối thì sau một phút sẽ lập tức thông báo cho ngời quản lý.

void disconect() {

{

// 0 là trạng thái không có kết nối

if (listViewComputers.Items[i].ImageIndex != 0) {

string cmd = "connecting" + SystemInformation.ComputerName;

// lstComputer là danh sách các máy tính đang kết nối lstComputer.Add(listViewComputers.Items[i].Text);

Remote.SendControl(client, listViewComputers.Items[i].Text, cmd);

} } }

- Líp Manage.cs:

Lớp này thực hiện quản lý các tiến trình, ổ địa, th mục,file , các dịch vụ và truyền file xuống máy khách.

+ Chức năng quản lý tiến trình(process): hiển thị các tiến trình của máy khách, cho phép hủy các tiến trình.

Đoạn mã lệnh yêu cầu máy khách hủy tiến trình(process) string command = "KillProces";

command += textBoxProcessName.Text;

byte[] data = Encoding.ASCII.GetBytes(command);

client.Send(data, data.Length, clientName, 5001)

+ Chức năng quản lý ổ đĩa của máy khách: xem các ổ đĩa của máy khách dới dạng cây(tree view), tạo th mục, xóa th mục và đổi tên th mục.

+ Chức năng quản lý các dịch vụ trên máy khách: xem các dịch vụ trên máy khách, chạy dịch vụ (start), dừng dịch(stop) ,tạm ngng dịch vụ(pause) và chạy tiếp dịch vụ(resume)

Đoạn mã lện yêu cầu máy khách chạy dịch vụ string code = "startservi"+caption;

//Stop dịch vụ: code = "stopservic" + caption

//Pause(tạm ngưng) dịch vụ:code = "pauseservi" + caption;

//Resume(chạy tiếp) dịch vụ :code = "resumeserv" + caption;

//caption của dịch vụ cần chạy try

byte[] data = Encoding.ASCII.GetBytes(code);

client.Send(data, data.Length, clientName, 5001);

Thread.Sleep(1000);

}

catch { }

- Lớp EventViewer.cs: lớp này chủ yếu là hiển thị các sự kiện của hệ thèng.

- Lớp createUser.cs: thực hiện chức năng quản lý tài khoản ngời dùng:

- chức năng tạo tài khoản

- chức năng nạp tiền vào tài khoản - Lớp frmDichvu.cs: quản lý các dịch vụ - chức năng thêm dịch vụ mới - chức năng xóa dịch vụ - sửa các dịch

b. Các module của chơng trình client

- Các namespace cần thiết đơc thêm vào:

System.Net: gồm các lớp : IPEndPoint, DNS,…

System.Net.Sockets: gồm các lớp: UDPClient, TCPClient,…

System.Threading: cung cấp các lớp và các giao diện cho phép lập trình

đa tiến trình(lớp Thread – dùng để tạo tiến trình).

System.Diagnostics: Cung cấp các lớp cho phép tơng tác với các tiến trình của hệ thống( lớp Process), cung câp các lớp giám sát sự thực thi của hệ thèng,…

Microsoft.Win32: Cung cấp 2 lớp là: lớp xử lý các sự kiện của hệ điều hành và lớp tác động vào Registry( lớp Registry).

- Líp CreateIPserver.cs:

Đợc chạy đầu tiên khi cha cấu hình các thông tin về máy server. Thực hiện lu các thông tin vào Registry (HKey_Current_User \ software \ NetMan) sau khi ngời dùng đã nhập đầy đủ các thông tin.

- Lớp Client.cs: Gồm các phơng thức chính:

+ Phơng thức StartClient, WaitMessage: Là hai phơng thức khởi tạo để mở cổng 5001 và nhận các thông điệp từ Server gửi xuống.

Phơng thức StartClient void startClient() {

iePoint = new IPEndPoint(new IPAddress(0), 0);

client = new UdpClient(5001);

Thread thread = new Thread(new ThreadStart(WaitMessage));

thread.Start();

}

Phơng thức Waitmessage public void WaitMessage() {

try {

while (true) {

byte[] data = new byte[1024];

data = client.Receive(ref iePoint);

string str = Encoding.ASCII.GetString(data);

ProcessReceivedControl(data);

} }

catch (SocketException er) {

} }

+ Phơng thức ProcessReceivedControl: thực hiện phân tích thông điệp của Server gửi xuống thành phần thông tin riêng. Để gửi xuống phơng thức xử lý Processcontrol.

Đoạn mã thực hiện phân tích nhận đợc từ máy server của phơng thức public bool ProcessReceivedControl(byte[] receivedData)

{

try {

byte[] cmd = new byte[10];

int i;

// lay lenh cua server gui den for (i = 0; i < 10; i++)

{

cmd[i] = receivedData[i];

}

// lay ten server

byte[] srvrName = new byte[receivedData.Length - 10];

int j = 0;

for (i = 10; i < receivedData.Length; i++) {

srvrName[j++] = receivedData[i];

}

string ServerName = Encoding.ASCII.GetString(srvrName);

ProcessControl(CommandCode, ServerName);

return true;

}

catch { return false; } }

+ Phơng ProcessControl: dùng một switch case để thực hiện các lệnh điều khiển từ máy server gửi xuống sử dụng các phơng thức của lớp Remote.cs ví dụ. Thực hiện lệnh shutdown từ máy chủ gửi xuống

public void ProcessControl(string CommandCode, string info) {

switch (CommandCode) {

………

case "Shutdown__":

Remote.Shutdown(client, info);

break;

…….

}

- Lớp Chat.cs: Nhận, hiển thị và gửi thông điệp chat tới server. Sử dụng cổng 5002 để giao tiếp với Server. Dùng một Thread để thực hiện giao tiếp (nhËn Message) víi Server.

- Lớp Remote.cs: Là lớp cốt lõi của chơng trình chạy ở Client, nó thực hiện tất cả các yêu cầu của Server gửi xuống. bao gồm các phơng thức sau:

+ Phơng thức SendControl: Thực hiện gửi thông điệp yêu cầu, trả lời tới Server

public static bool SendControl(UdpClient m_client, string frame, string ServerName)

{

try {

byte[] data = Encoding.ASCII.GetBytes(frame);

m_client.Send(data, data.Length, ServerName, 5000);

return true;

}

catch { return false; } }

+ Phơng thức LogOutClient: Thực hiện yêu cầu LogOff(thoát đăng nhâp) từ trên Server. Nếu thành công thì gửi kết quả lên cho Server. Tác động vào

System32 của hệ điều hành. Bằng cách thực hiện gọi phơng thức

Win32Shutdown” của hệ điêu hành windows phơng thức này có hai tham số: là

Flag” và “Reserved” trong trờng hợp này Flag = 4( logoff cỡng chế) hoặc có thể flag = 0(logoff bình thờng) còn Reserved = 0.

Đoạn mã lệnh thực hiện logout máy tính ManagementBaseObject mboLogout = null;

ManagementClass mcWin32 = new

ManagementClass("Win32_OperatingSystem");

// goi cac doi tuog trong wmi de xu ly mcWin32.Get();

// goi phuong thuc paramate de

ManagementBaseObject mboLogoutParamate = mcWin32.GetMethodParameters("Win32Shutdown");

mboLogoutParamate["Flags"] = "4";// force log off flags = 4 mboLogoutParamate["Reserved"] = "0";

//thiet lap dac quyen dieu khien may tinh mcWin32.Scope.Options.EnablePrivileges = true;

// thuc hien log out window

foreach (ManagementObject mbo in mcWin32.GetInstances()) {

mboLogout = mbo.InvokeMethod("Win32Shutdown", mboLogoutParamate, null);

}

+ Phơng thức ShutDown: Thực hiện tắt máy tính. Nếu thành công thì gửi kết quả lên cho Server. Tác động vào System32 của hệ điều hành. Bằng cách thực hiện gọi phơng thức “Win32Shutdown” của hệ điêu hành windows phơng thức này có hai tham số: là “Flag” và “Reserved” trong trờng hợp này Flag = 5 (thực hiện tắt cỡng chế) hoặc có thể flag = 1(thực hiện tắt bình thờng) còn Reserved = 0.

+ Phơng thức Reset : Thực hiện khởi động lại máy tính. Nếu thành công thì gửi kết quả lên cho Server. Tác động vào System32 của hệ điều hành. Bằng cách thực hiện gọi phơng thức “Win32Shutdown” của hệ điêu hành windows phơng thức này có hai tham số: là “Flag” và “Reserved” trong trờng hợp này Flag = 6(khởi động cỡng chế) hoặc có thể flag = 2 còn Reserved = 0.

+ Phơng thức Lock : Thực hiện khóa bàn phím máy tính. Nếu thành công thì gửi kết quả lên cho Server. Bằng cách thực hiện phơng thức BlockInput( bool var ) là phơng thức mở rộng của th viện “User32.dll” trong tr- ờng hợp này Var = true.

Đoạn mã lệnh thực hiện

[DllImport("user32.dll")]

public static extern bool BlockInput(bool fBockIt);

// thực hiện khóa bàn phím BlockInput(true);

+ Phơng thức UnLock: Thực hiện mở khóa bàn phím. Tơng tự phơng thức Lock nhng Var = false.

+ Phơng thức Hirbernate: thực hiện yêu cầu ngủ đông của máy chủ Câu lệnh thực hiện ngủ đông(Hirbernate)

Application.SetSuspendState(PowerState.Hibernate, true, true);

+ Phơng thức Standby: standby máy tính Câu lệnh thực hiện standby

Application.SetSuspendState(PowerState.Suspend, true, true);

+ ProcessClient: Thực hiện lấy các Process của máy để gửi lên cho Server. Visual 2008 cung cấp cho ta lớp Process để lấy thông tin của các tiến trình mà máy tính đang chạy.

Đoạn mã lệnh thực hiện

public static bool ProcessClient(UdpClient m_client, string ServerName) {

try {

Process[] prcRuning =

Process.GetProcesses(SystemInformation.ComputerName);

for (int i = 0; i < prcRuning.Length; i++) {

string msgInfo = "Process___";

sendcontrol1(m_client, ServerName, msgInfo);

System.Threading.Thread.Sleep(10);

Một phần của tài liệu Quản lý phòng máy tính (Trang 21 - 43)

Tải bản đầy đủ (DOC)

(46 trang)
w