WINDOWS 95 REGISTRY 

KHÁM PHÁ TOÀN BỘ


            I_Khái quát về Registry của Windows 95

       Windows 95 Registry cung cấp một cơ sở dữ liệu thống nhất nhằm mục đích lưu giữ dữ liệu thiết lập cấu hình cho hệ thống và ứng dụng theo một cơ cấu phân tầng. Vì Registry chứa tất cả các thiếp lập cần thiết cho việc cấu hình bộ nhớ, thiết bị ngoại vi và các bộ phận mạng mà Windows 95 cung cấp, bạn có thể thấy rằng sẽ chẳng còn cần thiết phải thiếp lập các cấu hình trong các file cấu hình khởi động cho máy và các phần mềm.

       Ðồng thời, dó các thiết lập được lưu tại cũng một vì trí trung tâm nên bạn có thể sử dụng các công cụ của Windows 95 để cung cấp các hỗ trợ tham số hệ thống cho cả máy địa phương (local) và từ xa (remote).

       Registry có tính chất tương đối giống như các file. INI được sử dụng dưới Windows 3.1: mỗi key (khoá) trong Registry tướng ứng với một heading (đầu mục) được đóng ngoặc vuông trong một tập  tin INI và các value (giá trị) của các entry (mục) trong Registry cũng giống như các giá trị của entry trực thuộc các heading được đóng ngoặc vuông nói trên trong file INI. Tuy nhiên , có 1 điểm khác biệt: key của Registry có thể chứa các subkey (khoá con) còn heading của Windows 3.1 thì không hỗ trợ “sub-deading” và value của Registry có thể bao gồm dữ liệu nhị phân (binary data) chứ không chỉ đơn giản dưới dạng chuỗi như trong tập tin INI cổ điển.

       Dù rằng Microsoft không khuyến khích sử dụng các file INI (thay vào đó là các entry của Registry) nhưng do một số phần mềm (thường là các phiên bản 16 bit) vẫn còn sử dụng các tập tin loại này để lưu cấu hình ứng dụng nên Windows 95 vẫn duy trì hỗ trợ file INI và với mục đích duy nhất là để tương thích với các ứng dụng cũ cùng công cụ của chúng ( ví dụ như các chương trình Setup) mà thôi. Các tập tin AUTOEXE.BAT và CONFIG.SYS vẫn hiện diện để tương thích với các thành phần hệ thống chạy ở chế độ thực (real mode) và để cho phép người dùng có thể thay đổi các giá trị mặc định cho hệ thống (ví dụ : Biến môi trường PATH). Trong khi đó, các ứng dụng mới dựa trên cơ sở Windows 32 có thể cất các thông tin cấu hình trong Registry.

       II. Làm quen với Registry Editor ( Regedit)

            Ðể có thể thực hiện được các công việc tôi sẽ nói ở đây, bạn sẽ cần tới một công cụ hệ thống do Windows 95 cung cấp, đó là Registry Editor (REGEDIT.EXE). Theo mặc định, Registry Editor không xuất hiện trong bất kỳ menu nào cũng như trên nền desktop. Nhưng bạn nên biết rằng REGEDIT.EXE đã được sao chép trực tiếp lên thư mục Windows khi bạn cài đặt Windows 95 và bạn có thể tự thêm biểu tượng shorcut của Registry Editor lên desktop hoặc vào menu Start để tiện sử dụng . Trong khi chưa tạo shortcut cho REGEDIT, bạn vẫn có thể khởi động Registry Editor một cách đơn giản bằng cách vào menu Start/Run, đưa vào REGEDIT và chọn OK.
Registry Editor có thể được sử dụng để xem hoặc sửa (modify) một Registry trên máy địa phương hoặc một máy tính khác không qua mạng máy tính. Ðể có thể truy nhập Registry từ xa (qua network), cả máy của người quản lý mạng và máy remote đều phải sử dụng dịch vụ Remote Registry của Microsoft.

       III. Cấu trúc của Registry

     Registry Editor hiển thị nội dung của dữ liệu Registry thành 6 nhánh lớn ( gọilà khoá) và dưới mỗi nhánh này lại có rất nhiều các nhánh con (khoá con) khác (cấu trúc phân tầng hiển thị trong Registry Editor cũng giống như cách thức mà Windows Exporer hiển thị cấu trúc các thư mục - hay folder). Tôi sẽ không mô tả chi tiết tổ chức sắp xếp của Registry mà chỉ trình bày tất cả các khái niệm của Registry để các bạn có thể hiểu một cách tổng quát  về khái niệm này. Tuy nhiên nội dung hoặc  vị trí của các khoá  con cụ thể trên thực tế ở máy bạn sử dụng có thể khác với những gì được mô tả dưói đây (điều đó phụ thuộc vào các dịch vụ và phần mềm được cài đặt trên máy bạn). Tuy vậy, mô tả cơ chế tổ chức một cách chung như thế này cũng sẽ giúp bạn hiểu được phần nào cách điểu khiển Registry.

     1. Các mục giá trị ( value entry) trong các khoá của Registry

     Registry Editor hiển thị dữ liệu Registry thành 2 ô lớn. Các mục giá trị (value) nằm trong ô bên phải cửa sổ được liên kết với khoá được điểm sáng (highlight) nằm ở ô bên trái.

     Mỗi mục giá trị có 3 phần kiểu dữ liệu của giá trị 9 xuất hiện dưới dạng biểu tượng), tên của giá trị và giá trị. Một mục giá trị không thể lớn hơn 64KEN và giới hạn tổng kích thước của Registry tuỳ thuộc vào không gian đĩa cứng còn trống. Sau đây là các loại dữ liệu thường được sử dụng:

     2. Nội dung các khoá của Registry

     Các bạn tham khảo thêm PC World số tháng 11/96, trang 72 để xem nội dùng cơ bản các khoá của Registry. Khuôn khổ trang báo không cho phép tôi đi chi tiết hơn vào các khoá con của Registry nhưng nếu bạn nào quan tâm, hãy liên hệ trực tiếp với tôi để có thêm tài liệu

     3. Các tập tin của Registry

     Registry được hiểu một các “ phi vật lý” (hay logic) là nơi lưu trữ thông tin duy nhất. Nhưng trên thực tế, nó bao gồm 2 tập tin phân biệt nằm trên đĩa cứng khởi động nhằm mục đích tăng cường tính mềm dẻo tối đa cho các thiết lập cầu hình hệ thống thông qua mạng:

     a. Thông tin xác lập người dùng (user - specific)  được cất trong file USER.DAT. Các thông tin này phản ánh những xác lập về phần mềm do người dùng sử dụng.

     b. Thông tin xác lập phần cứng (hardware-specific) và xác lập máy tính (computer-specific) nằm trong file SYSTM.DAT. Những thông tin này phản ánh các cấu hình phần cứng và được hiển thị trong Device Manager ( nhấn chuột phải lên My Computer, chọn Properties, chọn Device Manager).
Theo mặc định, USER.DAT và SYSTEM. DAT năm trong thư mục cài đặt Windows .

     4. Phục hồi thông tin của Registry

     Trong Windows 95, dữ liệu chỉ được viết vào Registry khi ứng dụng đẩy (flush) thông tin lên đĩa cứng. Mỗi lần Windows 95 khởi động thành công, hệ điều hành lại sao lưu ( backup) lại Registry bằng cách sao tập tin SYSTEM.DAT và USER.DAT hiện hành tương ứng thành SYSTEM.DA0 và USER.DA0 (lưu ý là số 0 chứ không phải chữ o). Nếu Windows 95 không khởi động được, bạn có thể sao bản Registry được backup từ lần khởi động thành công cuối cùng đè lên Registry hiện thời (có nghĩa là bạn phải sao 2 tập tin . DA0 trên thành YSTEM.DAT và USER.DAT tương ứng. Phương pháp này phục hồi lại các giá trị thiết lập đúng đắn của lần cuối cùng trước khi hệ thống có lõi (do phần mềm hoặc người dùng tự chỉnh sửa Registry vô tình hay cố ý).

     5. export và Impor nội dùng

     Registry có thể được xuất (export), nhập (import) hoặc tái lập (recreate) thông qua Regedit. Bằng cách sử dụng khả năng Export của Regedit, các bạn có thể lưu cất nội dung 1 nhánh hoặc toàn bộ Registry thành file. REG ở dạng văn bản và Import trở lại Registry một tập tin. REG như vậy sau khi đã chỉnh sửa bằng một phần mềm soạn thảo văn bản bất kỳ nào đó (vì dụ WordPad). Nếu bạn sử dụng bản Regedit trên Windows , hay dùng lệnh Export và Import từ menu Registry của Regedit. Trong một số trường hợp, khi Registry bị hỏng, bạn có thể sử dụng Registry trên dấu nhắc DOS với các cú pháp sau:

regedit[/L:system][R:user]
file1.reg,file1a.reg...
regedit[/L:system][R:user]/e
file3.reg[regkey] regedit[/L:system][R:user]/c

     (Lưu ý: Chỉ dùng regedit/c nếu bạn đã chắc chắn file. REG đó chứa toàn bộ nội dung hoàn chỉnh của Registry)

     6. Các tập tin INI và Registry

     Cho dù Registry thay thế chức năng cơ bản của các tập tin INI ( về các tập tin INI hãy xem thêm PC World số tháng 11/96 trang 60) đã từng được sử dụng trong WINFILE.INI vẫn xuất hiện trong thư mục Windows với mục đích tương thích với các driver (trình điều khiển  thiết bị) và các ứng dụng cũ. Ví dụ khi bạn cài đặt một phần mềm Windows 16 - bit trong Windows 95, các thông số do chương tình setup thiết lập lên WIN.INI và SYSTEM.INI sẽ không được cập nhật trong Registry (đơn giản bởi ứng dụng 16bit đó chưa hề biết tới Registry của Windows 95).

     Nếu bạn cài đặt Windows 95 như là một bản nâng cấp trên nền Windows 3.1 hoặc Windows for Workgroup đang có sẵn, một số thông số thiếp lập trong các file INI (như CONTROL.INI, PROGMAN.INI, SYSTEM.INI, WIN.INI) sẽ được sao vào Registry (để tự tay thay đổi các giá trị này bạn cầu sử dụng các công cụ như Regedit) và một số khác thì vẫn nằm lại trong các tập tin INI với mục đích tương thích (bạn vẫn có thể dùng bất kỳ chương trình soạn thảo văn bản nào để chỉnh sửa). Tuy nhiên theo tôi thì các bạn nên để nguyên các giá trị mặc định này chứ không nên thay đổi để khỏi gây ra các lỗi không thể dự đoán trước được.

     IV. Các thành phân cấu thành Windows 95 sử dụng Registry như thế nào

     Trong Windows 95, hệ điều hành lưu trữ và kiểm tra các thông tin cấu hình trong Registry cho hầu hết các thiếp lập cấu hình trong khi khởi động. Sơ đồ 2 mô tả khái quát cách thức cấu thành phần của Windows 95 và các ứng dụng sử dụng Registry.

     Những trường hợp thông tin trong Registry được truy xuất và cập nhật:

     - Mỗi lần bạn chạy Windows 95 Setup hoặc sử dụng tuỳ chọn Add New Hardware trong Control Panel hay chạy các chương trình setup khác cho phần cứng, bộ phận quản lý cấu hình (Configuration manager) của Windows 95 cũng đưa các dữ liệu về cấu hình phần cứng vào trong Registry. Trong số những thông tin này có một danh sách các phần cứng phát hiện ( detected) trên máy tính.

     -Khi bạn cài đặt nâng cấp lên Windows 95 vào trong cùng một thư mục bạn đã cài các vversion trước của Windows , các thông số trước đây về máy tính của bạn được chuyển từ các tập tin INI vào Registry. Khi bạn thay đổi các cấu hình cho máy thông qua một số các công cụ hệ thống hoặc quản lý, các giá trị bạn thiết lập đó cũng được đưa vào Registry 9 ví dụ khi bạn sử dụng Control panel\Display để thay đổi mày sắc, font chữ, bằng máy của màn hình).

     - Mỗi lần bạn thêm (add) hoặc bớt (remove) một thiết bị loại Plyg and Play trên một máy chạy Windows 95, các dữ liệu được lưu vào trong Registry. (ví dụ: các thông tin mới về phần cứng sẽ được bổ sung vào Registry khi bạn lắp thêm một modem PCMCIA).

     - Các trình điều khiển thiết bị ( device driver) cất và tải các tham số (parameters) và dữ liệu cấu hình từ Registry (dữ liệu này cũng tương tự như các dòng lệnh DEVICE  thiết lập trên môi trường DOS trong CONFIG.SYS).

     Có hẳn một loạt các hàm API về Registry của Windows 95 dùng để hỗ trợ cho các phần mềm công cụ quản lý máy tính của nhưng hãng khác (ngoài Microsoft) . Ðiều này cho phép người  quản lý mạng có thể xem (view) và sửa (modify) từ xa các thông số cấu hình cho phần cứng và phần mềm có lưu giữ thông tin trong Registry.

     Những bạn ham thích môn lập trình có thể tìm hiểu thêm và tự tay viết được các chương trình xem/sửa Registry bằng Visual basic hay bằng bất cứ một phần mềm lập trình nào trên Windows có hỗ trợ API.

     V. Làm chủ máy tính bằng Registry Editor

     Khi xuất xưởng Windows 95, Microsoft vẫn còn giữ lại rất nhiều bí mật xung quanh Registry dành cho người quản trị mạng với các phần mềm công cụ chuyên biệt để quản lý máy tính (ví dụ như Policy Editor- có trên CD ROM Windows 95 gốc hay PowerToy- xem thêm PC World số tháng 2/1997).

     Tuy nhiên nếu không có sẵn trong tay các công cụ Registry cao cấp như vậy thì bạn vẫn có thể sử dụng Regedit luôn có sẵn để tự khám phá và sửa sang Registry theo ý muốn. Tôi chắc rằng những bạn nào quan tâm tới Registry từ các số báo trước đều cũng đã ít nhất 1 lần thử Regidit để “customize” ( tuỳ biến) Registry theo các chỉ dẫn trên báo. Tuy nhiên nếu đây là lần đầu bạn bắt gặp khái niệm này thì cũng đừng ngại bởi công việc sẽ đơn giản và an toàn nếu bạn thực hiện đúng như nhưng điều tôi sẽ trình bày dưới đây.

     Ðể khởi động Regedit hãy làm như tôi đã nói ở phần đầu ” Làm quen với Registry Editor”.

     Qui ước thống nhất viết tắt: giả sử để vào được Registry như hình trên, bạn sẽ phải:

- Nhấn vào dấu + của HKEY_LOCAL_MACHINE
- Nhấn vào dấu + của config
- Nhấn vào dấu + của 0001
- Nhấn vào + của Display.
- Nhấn vào Fonts.

     Toàn bộ quá trình trên sẽ được viết tắt là :

HKEY_LOCAL_MACHINE\Config\0001\Display\Fonts.

     Tiếp theo bạn tham khảo các khoá của bảng bên dưới mô tả chi tiết những gì bạn muốn đạt được và bạn phải làm như thế nào (sau khi sửa trong Registry, hãy khởi động nhanh lại Windows bằng cách giữ Shift trong khi chọn “ Restart the Computer” của menu Start\ Shut down trong trường hợp thoát khỏi Regedit mà bạn vẫn chưa thấy thay đổi gì). Ðể làm ngược lại những gì ở các thủ thuật trong bảng, hãy thay giá trị 0 (số0) vào giá trị 1 của DWORD Value tương ứng.

     Các thủ thuật (chủ yếu dùng cho quản trị mạng) mà các bạn có thể thử nghiệm trên máy PC của mình. Hãy nhớ kỹ là luôn luôn sao lưu (backup) 2 tập tin SYSTEM. DAT và USER.DAT trước khi thử nghiệm, bạn sẽ được an toàn tuyệt đối 100% khi phiêu lưu với Regedit.