Tương tác với Rgistry

Tương tác với Rgistry

Lượt xem: 7,224Lượt tải: 4Số trang: 5

Mô tả tài liệu

Nếu là dân lập trình COM, chắc hẳn bạn không thể tránh khỏi sử khốn khổ khi lập trình với Registry của Windows. Còn nếu bạn sống chung với VS.NET rất ư là thưa thớt, .NET FRAMEWORK đã giảm sự quan trọng của Registry đối với ứng dụng, vì assembly đã trở thành “tự cung tự cấp” do đó assembly không cần thông tin đặc biệt được trữ trên Registry.

Tóm tắt nội dung

Biên tập: Nguồn: Internet Nếu là dân lập trình COM, chắc hẳn bạn không thể tránh khỏi sử khốn khổ khi lập trình với của Windows. Còn nếu bạn sống chung với VS.NET rất ư là thưa thớt, .NET đã giảm sự quan trọng của Registry đối với ứng dụng, vì assembly đã trở thành “tự cung tự cấp” do đó assembly không cần thông tin đặc biệt được trữ trên Registry. Registry giờ đây chỉ nơi tiện lợi để bạn lưu trữ thông tin về sở thích của người sử dụng. định nghĩa một vài lớp cho phép đọc/viết registry một cách dễ dàng. Sau đây là các lớp trong namespace này: Một trừu tượng hóa cấp cao về bản thân Registry, với tất cả các lớp được gắn liền : Đây là lớp cốt lõi cho phép bạn thêm vào, gỡ bỏ và nhật tu thông tin được trữ trong Registry Đây chỉ là mỗi khôn tổ ong (hive) trên Registry Trước khi đi vào việc tương tác với Registry qua C#, bạn cũng nên biết qua chút ít về Registry trong Windows chứ: - Để mở Registry: nhấn menu Start trên thanh taskbar, sau đó chọn RUN, ở hộp thoại RUN vừa hiện ra, gõ vào regedit. (HKCR): chứa những chi tiết về các loại tập tin và những ứng dụng nào đó có khả năng mở các tập tin loại nào. Ngoài ra, nó còn chứa những thông tin đăng ký đối với tất cả các cấu kiện COM (HKCU): chứa những chi tiết liên quan đến những sở thích của người sử dụng hiện được đăng nhập trên máy tính. (HKLM): là một hive đồ sộ chứa những chi tiết của tất cả các phần mềm và phần cứng được cài đặt trên máy. Nó cũng bao gồm HKCR hive: HKCR hiện thật sự không phải là 1 hive độc lập tự thân, nhưng đơn giản là một ánh xạ tiện lợi trên Registry key. (HKUSR): chứa những chi tiết liên quan đến sở thích của tất cả các người sử dụng. Như bạn có thể chờ đợi, nó cũng chứa hive HKCU, đơn giản là 1 ánh xạ lên 1 trong những Biên tập: Nguồn: Internet key trên chứa những chi tiết liên quan đến phần cứng trên máy tính. CÁC LỚP .NET REGISTRY: Việc truy cập vào Registry trên .NET sẽ thông qua 2 lớp Registry và thuộc Một thể hiện của lớp Registry Key tượng trưng cho một registry key. Lớp cung cấp những thành viên cốt lõi sau đây cho phép bạn làm việc với một key: -Name: thuộc tính này tìm lại tên của key thuộc tính này tìm lại bộ đếm số lượng subkey tìm lại bộ đếm các giá trị trên một key hàm này cho đóng lại key, và ghi lên đĩa cứng nếu nội dung bị thay đổi hàm này tạo 1 subkey mới hoặc mở 1 subkey hiện hữu. Chuỗi subkey không phân biệt chữ hoa, chữ thường. hàm này cho gỡ bỏ 1 subkey được chỉ định. Nếu muốn gỡ bỏ những subkey con thì sử dụng đến Chuỗi subkey không phân biệt chữ hoa, chữ thường hàm này cho tìm lại mảng chứa tất cả các tên của subkey hàm này tìm lại trị được khai báo. hàm này cho tìm lại 1 bản dãy chuỗi chữ chứa tất cả các tên trị (value name) hàm này cho mở 1 mới tượng trưng cho key được yêu cầu trên một máy nằm ngoài. hàm này cho tìm lại SubKey() hàm này cho đặt để 1 trị được chỉ định. Chuỗi subkey không phân biệt hoa thường. Lớp là lớp mà chúng ta sẽ dùng để làm việc với registry. Tutorial này sẽ đi sâu vào lớp này. Đầu tiên, muốn có 1 thể hiện của 1 tượng trưng cho key , bạn viết: Mã: Biên tập: Nguồn: Internet Hklm = Như bạn đã thấy, đối tượng Hklm đơn giản là đang trỏ tới khóa (HKLM) trong Registry. Cũng không có gì khó hiểu, chúng ta qua bước nữa nhé. Bây giờ, nếu bạn muốn đọc 1 vài dữ liệu trên bạn phải lấy qui chiếu về key như sau: Mã: Hklm = = = Hàm hành sự là 1 trong những hàm bạn sẽ triệu gọi nếu bạn chờ đợi key hiện hữu. Nếu nó không có, thì nó sẽ trả về một null Còn nếu bạn muốn tạo 1 key mới, bạn sẽ dùng hàm (hàm này tự động cho quyền Mã: Hklm = = HkMine = mem cua toi”); Như thế là chúng ta đã có có khóa mang tên “Phan mem cua toi” trong rồi đấy. Điều thông thường xảy ra là ứng dụng của bạn cần bảo đảm là 1 vài dữ liệu hiện diện trong – nói cách khác là tạo ra những key mang ý nghĩa nếu chúng chưa hiện diện, nhưng không làm gì cả nếu chúng hiện diện. đáp ứng đúng nhu cầu này. Một khi bạn đã có Registry key, bạn muốn đọc hoặc thay đổi, bạn có thể sử dụng hàm hoặc để đặt thuộc đi lấy dữ liệu trên Key. Thí dụ: Mã: HkMine = mem cua toi”); so dang ky”, “Hello World”); hieu”, 33); Biên tập: Nguồn: Internet Đoạn mã trên sẽ đặt key về 2 giá trị: “Ma so dang ky” sẽ mang kiểu dữ liệu REG_SZ, trong khi “So hieu” sẽ mang kiểu dữ liệu REG_DWORD (ở đây giá trị của nó = 33) hoạt động cũng như vậy, nó được định nghĩa trả về 1 quy chiếu đối tượng, nghĩa là trả về 1 qui chiếu string nếu nó thấy có kiểu dữ liệu REG_SZ và một int nếu phát hiện kiểu dữ liệu Mã: string = (string) so dang ky”); int sohieu = (int) hieu”); Khi đã thao tác xong với registry, bạn nhớ là phải cho đóng lại nhé: Mã: Bây giờ, tớ vừa nghĩ ra một ứng dụng nho nhỏ, chúng ta thử xây dựng 1 ứng dụng Windows Forms, trong đó có chứa 1 button để save trạng thái của Form chính, trong đó Form chính còn chứa thêm các thuộc tính như màu sắc, font chữ,… Chẳng hạn nhé, bây giờ mình có 1 chương trình, người dùng mở lên, thao tác “tá lả âm binh” trên đó như thay đổi màu sắc phông chữ, thay đổi màu nền,… sau đó họ thoát ra, và bạn phải làm sao để lúc họ mở lại, những thay đổi của người dùng không bị biến mất. Làm sao đây? A ha, đây là lúc chúng ta sử dụng đến đàn em vừa quen biết. Giả sử,tớ đã xây dựng Form xong rồi nhé, và có đầy đủ các thuộc tính, mọi người ơi, phá Form tớ thoải mái đi, yeah, ok. Xong! Bây giờ tớ dùng để lưu lại mấy cái phá hoại của mấy người (hix) Mã: private void sender, EventArgs e) // tình huống clicked của button Saved Biên tập: Nguồn: Internet { regKey = regKey = } Nếu bây giờ người sử dụng cho màu hiện hành về màu Blue đi nhá và kích thước Font chữ là 30. Thì những thông tin này sẽ được lưu trong phần lưu thông tin, bây giờ giải quyết việc đọc thông tin đã lưu bằng cách dùng hàm Cụ thể như đoạn code dưới đây: Mã: regKey = regKey = //đọc vào dữ liệu rồi gán cho biến tình trạng = (int) string c = (string) currColor = c ); BackColor =