Đỉnh NGUYỄN

life's a journey not a destination


Leave a comment

Cách đơn giản nhất lập trình ShutDown / Restart hệ thống dùng C#


Một cách ShutDown / Restart hệ thống là dùng WMI (Windows Management Interface). Tuy nhiên, yêu cầu phải viết một số dòng mã. Cách đơn giản nhất ShutDown / Restart hệ thống là dùng lớp Process (thuộc namespace System.Diagnostics)

private void btnShutDown_Click(object sender, EventArgs e)
{
        Process.Start("shutdown", "-s -f -t 0");
}

private void btnRestart_Click(object sender, EventArgs e)
{
        Process.Start("shutdown", "-r -f -t 0");
}

Tôi không thể post kết quả vì máy tính đang ShutDown 🙂

Advertisements


Leave a comment

Chuyển lowercase và UPPERCASE sang TitleCase trong .NET


Lớp String có 2 phương thức ToLower() và ToUpper() để chuyển 1 chuỗi sang lowercase và UPPERCASE tương ứng. Khi chuyển từ lowercase và UPPERCASE, phương thức ToTitleCase() của lớp TextInfo trở nên có ích, xem ví dụ:

using System;

// import Globalization namespace
using System.Globalization;

namespace TitleCase_CS
{
    class Program
    {
        static void Main(string[] args)
        {
            string strLow = "lower case";
            string strT = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strLow);
            Console.WriteLine("lower case to Title Case: " + strT);

            string strCap = "UPPER CASE";
            strT = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strCap.ToLower());
            Console.WriteLine("UPPER CASE to Title Case: " + strT);
            
            Console.ReadLine();
        }
    }
}

Dùng thuộc tính CurrentCulture.TextInfo để truy xuất 1 thể hiện của lớp TextInfo dựa trên culture hiện tại.

Chú ý: phương thức này không chuyển 1 từ hoàn toàn UPPERCASE, như là từ viết tắt sang TitleCase. Vì lý do đó, phải chuyển sang lowercase trước:

Kết quả:

image


Leave a comment

Nén tập tin và thư mục trong .NET


Có nhiều cách để nén tập tin trong .NET, một số ví dụ dùng các lớp SharpZipLib, GZipStream, Windows Shell API hay ZipLibrary. Có một cách ít được biết đến nhưng cũng hữu dụng là DotNetZip library.

DotNetZip dễ dùng và miễn phí, thao tác tạo, đọc, giải nén, cập nhật tập tin nén khá dễ dàng. Nó cũng làm việc với Mono.

Tham khảo tài liệu hướng dẫn và tải DotNetZip tại http://www.codeplex.com/DotNetZip

Ví dụ minh họa nén tất cả tập tin trong 1 thư mục:

using System;
using Ionic.Zip;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (ZipFile zip = new ZipFile())
                {
                    zip.AddDirectory(@"C:\SSMSTools");
                    zip.Save(@"C:\SSMSTools.zip");
                    Console.WriteLine("Files zipped");
                }
            }
            catch (ZipException ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
}


Leave a comment

Tạo tài liệu PDF từ ứng dụng .NET


Một số OpenSource và Libraries có trả phí mà bạn có thể dùng:

Open Source

PDFSharp – PDFSharp là thư viện Open Source rất dễ tạo tài liệu PDF từ bất kỳ ngôn ngữ .NET

iTextSharp – Thư viện tạo tài liệu PDF nhẹ, thích hợp C#

Report.NET – Tạo tài liệu PDF từ đơn giản đến phức tạp

PDFjet for .NET – Thư viện tạo PDF miễn phí

Paid Libraries

PDF4NET – Thư viện .NET tạo tài liệu PDF rất khả chuyển

Abcpdf – Tạo động tài liệu PDF

Dynamic PDF Generator for .NET – Tạo tài liệu PDF dựa trên dữ liệu động thời gian thực


Leave a comment

Find Information about your Network Cards (C#)


using System;
using System.Linq;
using System.Net.NetworkInformation;

namespace NetworkCardInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Network Interface Cards
            var nics = NetworkInterface.GetAllNetworkInterfaces().Where(o => o.OperationalStatus == OperationalStatus.Up);

            foreach (var item in nics)
            {
                Console.WriteLine("Description: " + item.Description);
                Console.WriteLine("Name: " + item.Name);
                Console.WriteLine("Speed: " + item.Speed);
                Console.WriteLine("Type: " + item.NetworkInterfaceType);
                Console.WriteLine();
            }
        }
    }
}


Leave a comment

Truy xuất danh sách các dịch vụ chạy trong máy tính dùng C#


Lớp ServiceController dùng để truy xuất danh sách các dịch vụ chạy trên máy tính. GetServices() được dùng để làm điều này. Đây là ví dụ liệt kê các dịch vụ đang chạy trên máy tính.

Thêm thư viện System.ServiceProcess

Sau đó viết đoạn mã sau:

using System;
using System.ServiceProcess;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                ServiceController[] sController = ServiceController.GetServices();
                foreach (ServiceController sc in sController)
                {
                    if (sc.Status.ToString() == "Running")
                    {
                        Console.WriteLine(sc.ServiceName);
                    }
                }
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                // handle ex
            }
        }
    }
}


Leave a comment

Tính toán chính xác đến giây, milli giây và micro giây dùng C#


Dùng DateTime.Ticks. Một tick đại diện 1 trăm nano giây.

using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                long startTick = DateTime.Now.Ticks;
                long endTick = DateTime.Now.Ticks;
                long tick = endTick - startTick;
                long seconds = tick / TimeSpan.TicksPerSecond;
                long milliseconds = tick / TimeSpan.TicksPerMillisecond;
                long microseconds = tick / 10;
                Console.WriteLine("Seconds Elapsed :" + seconds);
                Console.WriteLine("Millseconds Elapsed :" + milliseconds);
                Console.WriteLine("Microseconds Elapsed :" + microseconds);
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                // handle ex
            }
        }
    }
}


Leave a comment

Ẩn tập tin dùng C#


Lớp FileInfo chứa các phương thức rất hữu dụng cho việc tạo, sao chép, di chuyển và mở tập tin. Đây là cách ẩn 1 tập tin dùng C#

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string filePath = @"D:\Network.txt";
                FileInfo f = new FileInfo(filePath);
                f.Attributes = FileAttributes.Hidden;
                Console.WriteLine("File Hidden");
            }
            catch (Exception ex)
            {
                // handle ex
            }
        }
    }
}


Leave a comment

Lấy danh sách các phân vùng ổ cứng, đĩa mạng, usb và cd rom trên máy dùng C#


using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                DriveInfo[] drives = DriveInfo.GetDrives();
                foreach (DriveInfo di in drives)
                {
                    if (di.IsReady)
                    {
                        Console.WriteLine("Volume label: {0} ", di.VolumeLabel);
                        Console.WriteLine("Drive Type: {0} ", di.DriveType);
                        Console.WriteLine("Free space: {0} bytes ", di.TotalFreeSpace);
                        Console.WriteLine("Drive Size: {0} bytes \n", di.TotalSize);
                    }
                }
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                // handle ex
            }
        }
    }
}


Leave a comment

.NET Framework 3.5 – Quick Technology Finder


Bảng bên dưới liệt kê các công nghệ chính yếu được tích hợp & hỗ trợ bởi .NET Framework

.NET Compact Framework Là 1 tập nhỏ của .NET Framework được xây dựng tối ưu cho phát triển các ứng dụng trên Windows Mobile và Windows CE
.NET Framework Class Library Tập thư viện lớp khổng lồ cung cấp mọi thứ cần thiết để phát triển ứng dụng Windows mà không cần biết về các API phức tạp.
ADO.NET Là 1 công nghệ truy xuất cơ sở dữ liệu thế hệ mới dựa trên các lớp thư viện mạnh mẽ của .NET Framework kết hợp với Xml
Application Domains Tạo ra các tiến trình bao bọc ứng dụng để tăng tính bảo mật và kiểm soát lỗi.
ASP.NET Công nghệ lập trình ứng dụng phân tán internet (web) dựa trên .NET Framework và ngôn ngữ C#, VB.NET
Assemblies Biết rõ nhưng ko biết nói ra thế nào
Asynchronous Programming Lập trình không đồng bộ (ám chỉ lập trình luồng theo mô hình nhà sản xuất và nhà tiêu thụ)
CodeDom Ko rõ lắm
Common Language Runtime Môi trường thực thi ứng dụng của .NET Framework
Configuration Quản lý và tùy biến cấu hình các ứng dụng cho nhiều môi trường
Data Access Công nghệ truy cập cơ sở dữ liệu nhanh chóng và dễ dùng với DataSet
Debugging Công cụ gỡ lỗi và dò tìm lỗi hiện đại
Deployment Công cụ và môi trường triển khai các ứng dụng
Designers and The Designer Environment Môi trường thiết kế hỗ trợ tối đa cho việc phát triển ứng dụng dùng controls và các công cụ tích hợp
Events Thụ lý và quản lý tất cả các sự kiện dựa trên mô hình ủy nhiệm hàm (delegate)
Exceptions Các ngoại lệ trong quá trình thực thi chương trình được quản lý và xứ lý.
Garbage Collection Quản lý các nguồn tài nguyên được cấp phát cho ứng dụng và thu hồi khi không đủ bộ nhớ hoặc khi CPU rảnh một cách tự động
GDI+ Cung cấp các thư viện Windows Graphics Device Interface tạo đồ họa, văn bản, tính toán các đối tượng hình ảnh đồ họa.
Generics Giải quyết rất tốt vấn đề con trỏ hàm trong C++
Globalization & Localization Hỗ trợ ứng dụng đa ngôn ngữ và nền văn hóa, phù hợp khi phân phối trên phạm vi rộng.
I/O System.IO namespace cho phép đọc, viết dữ liệu vào tập tin và vào luồng theo 2 cơ chế đồng bộ và bất đồng bộ.
Interoperability Mô tả các dịch vụ của .NET Framework tương tác với các dịch vụ COM, COM+
Language-Integrated Query (LINQ) Tập các đặc tính truy xuất cơ sở dữ liệu trong mã C#, dùng ngôn ngữ C#
MSBuild Tập hợp công cụ biên dịch và tùy biến quá trình biên dịch. Hỗ trợ tối đa sự uyển chuyển khi biên dịch dùng dòng lệnh.
Mobile Development Phát triển ứng dụng mobile và web trên mobile với .NET Compack Framework và môi trường giả lập thiết bị
Networking Lập trình giao diện ứng dụng mạng với các giao thức
Reflection Dựa vào 2 namespace: System.Reflection và System.Type, có thể biết được thông tin đầy đủ về assemblies được nạp.
Remoting Kỹ thuật truy cập và giao tiếp với các hàm, các tiến trình khác chạy trên các máy khác thông qua mạng.
Security CLR và .NET Framework cung cấp nhiều lớp và dịch vụ cho phép bảo mật ứng dụng khi viết mã. Cung cấp bảo mật truy cập vào mã và các tài nguyên, mã hóa, giải mã.,,,
Serviced Components Là những thành phần dịch vụ cho phép truy cập các thành phần COM+ từ .NET Framework
Serialization Chuyển đổi trạng thái của 1 đối tượng thành 1 luồng để có thể lưu giữ trạng thái, chuyển đi qua mạng
Side-by-Side Execution Khả năng cài đặt nhiều phiên bản mã, ứng dụng có thể chọn phiên bản CLR và các thành phần để chạy.
Threading Quản lý đa luồng trong ứng dụng đảm bảo tính tương tác và tận dụng bộ xử lý
Windows Communication Foundation Mô hình lập trình đồng nhất xây dựng các ứng dụng hướng dịch vụ dùng .NET Compact
Windows Forms Các ứng dụng desktop windows và GDI+
Windows Forms Controls Những controls chính là đối tượng, lớp trong .NET Framework, mỗi controls có những thuộc tính, phương thức, hành vi cho những mục đích phù hợp, cụ thể.
Windows Presentation Foundation Cung cấp mô hình lập trình đồng nhất xây dựng các ứng dụng windows thông minh, giàu tài nguyên và phong phú giao diện người dùng (UI), media, và documents
Windows Services Với VS.NET hoặc .NET Framework SDK, có thể tạo ra 1 dịch vụ bằng cách tạo ra 1 ứng dụng được cài đặt và hoạt động như 1 dịch vụ. Tạo, cài đặt, khởi động, dừng và điều khiển hành vi.
XML Các lớp trong System.Xml namespace cung cấp đầy đủ các lớp cho phép làm việc với Xml và dữ liệu Xml. Hỗ trợ parse, write Xml, edit dữ liệu Xml trong bộ nhớ, kiểm chứng dữ liệu, và chuyển đổi XSLT
XML Web Services Là 1 thực thể có thể lập trình, cung cấp các chứng năng, dịch vụ ứng dụng thông qua internet dùng Xml và Http