Hiển thị các bài đăng có nhãn Windows Form. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Windows Form. Hiển thị tất cả bài đăng
Kiểm tra địa chỉ email của dịch vụ Yahoo có tồn tại hay không bằng C#
Windows FormỞ bài trước đã giới thiệu đến bạn đọc cách kiểm tra địa chỉ email của dịch vụ Google (Gmail và tên miền Google cung cấp) có tồntại hay không bằng C#. Ở bài này sẽ giới thiệu tiếp các bạn để kiểm tra địa chỉ email Yahoo có tồn tại hay không bằng C#. Để bạn hoàn thiện phần kiểm tra địa chỉ email tồn tại hay không khi bạn viết ứng dụng muốn người dùng đăng ký bằng Yahoo.
Để sử dụng được phần này bạn hãy tìm hiểu trước về bài viết Kiểm tra địa chỉ email của dịch vụ Google (Gmail vàtên miền Google cung cấp) có tồn tại hay không bằng C#.
Sau đó bạn kết hợp thêm hàm kiểm tra địa chỉ email Yahoo sau. Kết quả của hàm sau nếu email tồn tại thì sẽ trả về giá trị là “true” và ngược lại.
Hàm kiểm tra:
private bool check_yahoo(string yahoo)
{
bool ketqua = false;
try
{
string url = "https://edit.yahoo.com/reg_json?PartnerName=yahoo_default&AccountID=" + yahoo + "&ApiName=ValidateFields";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse myRes = (HttpWebResponse)myReq.GetResponse();
if (myRes.StatusDescription.ToString().ToUpper() == "OK")
{
Stream myStream = myRes.GetResponseStream();
StreamReader Reader = new StreamReader(myStream);
string Result = Reader.ReadToEnd();
string[] tach_Result = Result.Split(',');
if (tach_Result[0] == "{\"ResultCode\":\"SUCCESS\"")
ketqua = false;
else
ketqua = true;
}
else
ketqua = false;
}
catch
{
ketqua = false;
}
return ketqua;
}
Kiểm tra địa chỉ email của dịch vụ Google (Gmail và tên miền Google cung cấp) có tồn tại hay không bằng C#
Windows FormDịch vụ email là rất phổ biến ngày nay, nó dùng để gửi thư và được sủ dụng phổ biến vào mục đích đăng ký tài khoản. Khi bạn viết một ứng dụng muốn người dùng đăng ký sử dụng bằng email. Vậy bạn muốn kiểm tra email của người đăng ký nhập email có tồn tại không? Sau đây sẽ giới thiệu cách kiểm tra email của dịch vụ Google (gồm Gmail và các tên miền do Google cung cấp) có tồn tại hay không.
Ở đây chúng ta sử dụng các thư viện sau để hỗ trợ việc kiểm tra email: System.Text.RegularExpressions, System.Net.Sockets, System.IO
Trong bài viết này các bạn cần lưu ý đến 2 hàm quan trong là isEmail: dùng để kiểm tra xem email nhập vào có đúng định dạng hay không, check_gmail: dùng để kiểm tra xem Gmail hoặc các dịch vụ Google cung cấp có tồn tại hay không. Cả 2 hàm này đều trả về giá trị True là nhập email đúng định dạng và email tồn tại.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Kiểm tra email tồn tại hay không
using System.Text.RegularExpressions;
//gmail
using System.Net.Sockets;
using System.IO;
namespace Check_Gmail_Google
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Hàm kiểm tra xem nhập email theo đúng định dạng chưa
public static bool isEmail(string inputEmail)
{
inputEmail = inputEmail ?? string.Empty;
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))
return (true);
else
return (false);
}
///Hàm kiểm tra email có tồn tại hay không
//Hàm kiểm tra tồn tại email của Gmail (kể cả các tên miền của các website, ex: @cadt.com.vn,@tinhte.vn ...)
private bool check_gmail(string gmail)
//Trả về True là gmail tồn tại
{
bool ketqua = false;
TcpClient tClient = new TcpClient("gmail-smtp-in.l.google.com", 25);
string CRLF = "\r\n";
byte[] dataBuffer;
string ResponseString;
NetworkStream netStream = tClient.GetStream();
StreamReader reader = new StreamReader(netStream);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("HELO VietQuan" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("MAIL FROM:<tracdiaviet.com.vn@gmail.com>" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("RCPT TO:<" + gmail.Trim() + ">" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();
if (GetResponseCode(ResponseString) == 550)
{
ketqua = false;
}
else
{
ketqua = true;
}
dataBuffer = BytesFromString("QUITE" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
tClient.Close();
return ketqua;
}
private byte[] BytesFromString(string str)
{
return Encoding.ASCII.GetBytes(str);
}
private int GetResponseCode(string ResponseString)
{
return int.Parse(ResponseString.Substring(0, 3));
}
private void button1_Click(object sender, EventArgs e)
{
if (isEmail(textBox1.Text) == true)
{
label2.Text = "Đang kiểm tra email...";
label2.Refresh();
if (check_gmail(textBox1.Text) == true)
MessageBox.Show("Email bạn nhập vào là tồn tại", "Email tồn tại");
else
MessageBox.Show("Email bạn nhập vào không tồn tại", "Email không tồn tại");
label2.Text = "";
}
else
{
MessageBox.Show("Bạn nhập email sai định dạng","Email không đúng định dạng");
}
}
}
}
Giao diện chương trình khi chạy bạn nhập địa chỉ email và chọn nút kiểm tra và đợi chương trình kiểm tra, tùy vào tốc độ mạng mà kiểm tra nhanh hay chậm
Lấy thông tin phần cứng của máy tính (CPU, MainBoard, Hard Disk...) bằng C#
Windows FormTrong C# cung cấp cho ta một thư viện là System.Management, trong thư viện này cung cấp các hàm hỗ trợ lấy toàn bộ thông tin về phần cứng của máy. Khi viết code cho ứng dụng bạn cần khai báo thư viện này. Và cấu trúc để ta lấy thông tin như sau:
ManagementObjectSearcher MOS = new ManagementObjectSearcher("Select * From" +key);
foreach (ManagementObject get in MOS.Get())
{
String thongtin= get["Thuộc tính"].ToString();
}
Ở đây – key: là tên phần cứng cần lấy như Win32_BIOS (MainBoard), Win32_processor (CPU)…
- Thuộc tính: là thông tin cần lấy của phần cứng.
Ví dụ cần lấy SerialNumber của BIOS:
ManagementObjectSearcher MOS = new ManagementObjectSearcher("Select * From Win32_BIOS");
foreach (ManagementObject getserial in MOS.Get())
{
String serial_number = getserial["SerialNumber"].ToString();
}
Ví dụ cần lấy SerialNumber của CPU:
ManagementObjectSearcher MOS = new ManagementObjectSearcher("Select * From Win32_processor");
foreach (ManagementObject getserial in MOS.Get())
{
String serial_number = getserial["ProcessorID"].ToString();
Tạo và giải nén file Zip với C#
Windows FormViệc nén dữ liệu vào một file zip là rất cân thiết, với những mục đích khác nhau. Như nén file lại để gửi cho người khác qua email. Hoặc với mục đích bảo mật đặt password cho file zip đó. Trong C# ta có thể dễ dàng nén thành 1 file zip và giải nén file này.
Trong phần này sẽ giới thiệu thư viện DLL ICSharpCode.SharpZipLib. Đây là thư viện được tạo ra giúp chúng ta dễ dàng thao tác với tạo và giải nén file zip. Thư viện này đã có trong thư mục mã nguồn ở cuối trang.
Ví dụ: Ta có 1 folder tên là “Tep” ở cùng thư mục chương trình, và 1 file zip có tên là gianen.zip với password là “12345”, viết chương trình có 2 nút lệnh, 1 nút là nén folder “Tep” thành file zip với tên là danen.zip và password là “6789” lưu vào ổ D, 1 nút là giải nén file zip giainen.zip lưu vào ổ D.
Code:
Ta tạo 1 ứng dụng WindowsForm với 2 nút Button là “Nén file” và “Giải nén file”. Và ta Add Reference thư viện ICSharpCode.SharpZipLib.dll vào trong Project vừa tạo (Add bằng cách ở thanh menu chọn Project -> Add Reference -> Chuyển sang tab Browse và tìm đến thư viện đó).
Sau khi Add thư viện xong ta tiến hành viết code. Ta có 2 hàm quan trọng là CreateSample(tạo file zip) và ExtractZipFile(giải nén).
Lưu ý: Bạn tạo form có 2 nút "Nén" và Giải Nén" rồi cứ việc gọi các hàm tương ứng bên dưới là sẽ hoàn chỉnh chương trình
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
//Khai báo sử dụng thư viện ICSharpCode.SharpZipLib.dll
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Core;
namespace Zipfile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
#region///Hàm tạo file nén create zip có pass
public void CreateSample(string outPathname, string password, string folderName)
//outPathname: tên và đường dẫn lưu kết quả (ví dụ tên là ketqua.zip lưu ổ E, "E:\\ketqua.zip")
//password: là password thiết lập cho file zip (ví dụ pass là "12345")
//folderName: là đường dẫn folder dữ liệu (ví dụ có folder "data" ở ổ C, "C:\\data")
//CreateSample("C:\\ketqua.zip", "12345", "C:\\data");
//Chú ý nếu ketqua.zip đã tồn tại trong ổ E thì cần phải xóa bỏ file này thì mới tạo được
{
FileStream fsOut = File.Create(outPathname);
ZipOutputStream zipStream = new ZipOutputStream(fsOut);
zipStream.SetLevel(3); //0-9,có 9 mức nén, mức 9 là cao nhất
zipStream.Password = password;
int folderOffset = folderName.Length + (folderName.EndsWith("\\") ? 0 : 1);
CompressFolder(folderName, zipStream, folderOffset);
zipStream.IsStreamOwner = true;
zipStream.Close();
}
private void CompressFolder(string path, ZipOutputStream zipStream, int folderOffset)
{
string[] files = Directory.GetFiles(path);
foreach (string filename in files)
{
FileInfo fi = new FileInfo(filename);
string entryName = filename.Substring(folderOffset);
entryName = ZipEntry.CleanName(entryName);
ZipEntry newEntry = new ZipEntry(entryName);
newEntry.DateTime = fi.LastWriteTime;
newEntry.Size = fi.Length;
zipStream.PutNextEntry(newEntry);
byte[] buffer = new byte[4096];
using (FileStream streamReader = File.OpenRead(filename))
{
StreamUtils.Copy(streamReader, zipStream, buffer);
}
zipStream.CloseEntry();
}
string[] folders = Directory.GetDirectories(path);
foreach (string folder in folders)
{
CompressFolder(folder, zipStream, folderOffset);
}
}
#endregion
#region///Hàm giải nén file zip có password
public void ExtractZipFile(string archiveFilenameIn, string password, string outFolder)
//archiveFilenameIn: đường dẫn file zip (ví dụ trong ổ E có file zip là ketqua.zip, "E:\\ketqua.zip")
//password: là password đã đặt cho file zip như ví dụ trên là ketqua.zip(ví dụ "12345678")
//outFolder: đường dẫn folder lưu kết quả giải nén (ví dụ trong ổ C có thư mục là data, "C:\\data")
//ExtractZipFile("E:\\ketqua.zip","12345678","C:\\data")
{
ZipFile zf = null;
try
{
FileStream fs = File.OpenRead(archiveFilenameIn);
zf = new ZipFile(fs);
if (!String.IsNullOrEmpty(password))
{
zf.Password = password;
}
foreach (ZipEntry zipEntry in zf)
{
if (!zipEntry.IsFile)
{
continue;
}
String entryFileName = zipEntry.Name;
byte[] buffer = new byte[4096];
Stream zipStream = zf.GetInputStream(zipEntry);
String fullZipToPath = Path.Combine(outFolder, entryFileName);
string directoryName = Path.GetDirectoryName(fullZipToPath);
if (directoryName.Length > 0)
Directory.CreateDirectory(directoryName);
if (System.IO.File.Exists(fullZipToPath) != true)
{
using (FileStream streamWriter = File.Create(fullZipToPath))
{
StreamUtils.Copy(zipStream, streamWriter, buffer);
}
}
else
{
using (FileStream streamWriter = new FileStream(fullZipToPath, FileMode.Append))
{
StreamUtils.Copy(zipStream, streamWriter, buffer);
}
}
}
}
finally
{
if (zf != null)
{
zf.IsStreamOwner = true;
zf.Close();
}
}
}
#endregion
//Button Nén file thành file Zip
private void button2_Click(object sender, EventArgs e)
{
//Lấy đường dẫn file Tep.txt để cùng với thư mục chương trình
string folderName = Path.GetDirectoryName(Application.ExecutablePath) + "\\Tep";
//MessageBox.Show(folderName);
CreateSample("E:\\danen.zip", "12345", folderName);
MessageBox.Show("Đã nén thành công", "Thông báo");
}
//Button Giải nén
private void button3_Click(object sender, EventArgs e)
{
ExtractZipFile(Path.GetDirectoryName(Application.ExecutablePath) + "\\giainen.zip", "6789","E:\\giainen");
MessageBox.Show("Đã giải nén thành công", "Thông báo");
}
}
}
Đăng ký:
Bài đăng (Atom)