2008-09-09 30 views
40

Tôi biết rằng chúng ta không nên sử dụng đăng ký để lưu trữ Dữ liệu ứng dụng nữa, nhưng trong việc cập nhật ứng dụng cũ (và muốn thực hiện những thay đổi ít nhất), Registry không là người quản trị được phép sử dụng?Bạn có thể truy cập vào đăng ký nào mà không cần quản trị viên cấp quyền?

Tôi có thể truy cập tất cả HKEY_CURRENT_USER (ứng dụng hiện đang truy cập HKEY_LOCAL_MACHINE) mà không có đặc quyền của Quản trị viên không?

+1

"Tôi biết rằng chúng tôi không nên sử dụng đăng ký để lưu trữ Dữ liệu ứng dụng nữa" - Tôi không nghĩ điều này là hoàn toàn đúng sự thật. Sổ đăng ký có nhiều ưu điểm so với hệ thống tệp và tôi không biết bất kỳ hướng dẫn nào từ Microsoft để ngừng sử dụng nó trong quá trình phát triển ứng dụng. Bạn có lẽ không nên sử dụng nó để lưu trữ một lượng lớn dữ liệu ứng dụng, nhưng nó là một nơi tốt để lưu trữ các thiết lập và dữ liệu cấu hình. – syplex

Trả lời

64

Nói chung, người dùng không phải quản trị có quyền truy cập vào registry:

Đọc/Viết thư cho:

  • HKEY_CURRENT_USER

Chỉ đọc:

  • HKEY_LOCAL_MACHINE
  • HKEY_CLASSES_ROOT (mà chỉ là một liên kết để HKEY_LOCAL_MACHINE\Software\Classes)

Nó có thể thay đổi một số trong những điều khoản trên cơ sở chìa khóa-by-key, nhưng đó là cực kỳ hiếm. Bạn không cần phải lo lắng về điều đó.

Vì mục đích của bạn, ứng dụng của bạn phải viết cài đặt và cấu hình thành HKEY_CURRENT_USER. Địa điểm kinh điển là bất kỳ nơi nào trong vòng HKEY_CURRENT_USER\Software\YourCompany\YourProduct\

Bạn có thể giữ các cài đặt toàn cầu (cho tất cả người dùng) trong HKEY_LOCAL_MACHINE. Rất hiếm khi cần phải làm điều này, và bạn nên tránh nó. Vấn đề là bất kỳ người dùng nào cũng có thể "đọc" chúng, nhưng chỉ một quản trị viên (hoặc mở rộng, chương trình cài đặt/cài đặt của bạn) mới có thể "đặt" chúng.

Nguồn gây rắc rối phổ biến khác: ứng dụng của bạn không được ghi vào bất kỳ thứ gì trong các thư mục Program files hoặc Windows. Nếu bạn cần phải ghi vào tập tin, có một số tùy chọn trong tầm tay; mô tả tất cả chúng sẽ là một cuộc thảo luận dài hơn. Tất cả các tùy chọn đều kết thúc bằng văn bản cho thư mục con hoặc thư mục khác dưới %USERPROFILE% cho người dùng được đề cập.

Cuối cùng, đơn đăng ký của bạn phải nằm ngoài số HKEY_CURRENT_CONFIG. Tổ ong này nắm giữ cấu hình phần cứng, cấu hình dịch vụ và các mục khác mà 99,9999% ứng dụng không cần phải xem xét (ví dụ: nó giữ danh sách thiết bị cắm và chạy hiện tại). Nếu bạn cần bất kỳ thứ gì từ đó, hầu hết thông tin có sẵn thông qua các API được hỗ trợ ở nơi khác.

+2

Cảm ơn bạn. Đã lưu một tìm kiếm không cần thiết trên MSDN, mặc dù một liên kết sẽ tốt đẹp. Điều này Q & A muốn tiếp xúc nhiều hơn. –

3

Có, bạn sẽ có thể viết thư cho bất kỳ địa điểm nào dưới HKEY_CURRENT_USER mà không có đặc quyền của Quản trị viên. Nhưng đây thực sự là một cửa hàng tư nhân mà không người dùng nào khác trên máy này có thể truy cập, vì vậy bạn không thể đặt bất kỳ cấu hình được chia sẻ nào ở đó.

Các vấn đề liên quan