2013-10-01 16 views
5

Tôi đã tìm kiếm google và câu trả lời ở đây một lúc và đi đến kết luận rằng khi ghi vào sổ đăng ký, HKEY_CURRENT_USER sẽ khả dụng mà không có UAC, đúng không? Đây là những gì tất cả các chủ đề dường như nhà nước anyway. Vấn đề của tôi là tôi nhận được một lỗi truy cập bị từ chối khi cố gắng truy cập vào khóa này và viết một giá trị mới. Đây có phải là do có điều gì đó sai trái với sổ đăng ký của tôi hoặc tôi đang làm điều gì sai? Đây là mã tôi đang sử dụng:Không thể ghi vào HKEY_CURRENT_USER registrykey trong C#

string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; 
RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(runKey, true); 
startupKey.SetValue("Arebokerts application", '"' + Environment.CurrentDirectory +  "\\arebokert.exe" + '"', Microsoft.Win32.RegistryValueKind.String); 

Có ai có thể tử tế và làm sáng tỏ chủ đề không? Tôi muốn tránh xa mọi loại nhắc nhở UAC và có thể chạy nó mà không có đặc quyền UAC. Mã này ném một "UnauthorizedAccessException". Chuyện gì thế?

Trân trọng, arebokert

EDIT

Như David và Hans trong các ý kiến ​​chỉ ra, vấn đề này là do một cái gì đó chặn tôi từ việc thay đổi khóa. Tôi phát hiện ra nó là phần mềm diệt virus comodo, và vì vậy tôi tắt nó đi. Điều này làm cho chức năng ứng dụng đúng cách. Cảm ơn tất cả các bạn đã trả lời!

+0

Quyền truy cập có thể được ghi đè trên mỗi khóa riêng của quản trị viên. Cái này sẽ cao trong danh sách. Chạy regedit.exe, bấm chuột phải vào khóa, Quyền. –

+0

Đó không phải là giải pháp khả thi đối với tôi tôi sợ. Ứng dụng này sẽ được chạy trên các máy tính khác của tôi, vì vậy việc thay đổi quyền trên mỗi máy tính không phải là một tùy chọn. Cảm ơn lời khuyên của bạn mặc dù. – arebokert

+0

@arebokert Đó không phải là những gì Hans đang nói. Hans gợi ý rằng có thể đăng ký của bạn đã được bảo vệ bằng các quyền hạn chế từ chối quyền người dùng của bạn để thực hiện những gì bạn đang cố gắng. Trong trường hợp đó, không có số lượng yêu cầu cho các giải pháp khác sẽ giúp đỡ. Nếu bảo mật từ chối bạn truy cập, bạn không thể phá vỡ nó. Nếu bạn có thể, nó sẽ không được, um, an toàn. –

Trả lời

5

Mã của bạn là tốt và người dùng chuẩn, theo mặc định, có thể viết thư cho HKCU. Vấn đề là hệ thống đang từ chối bạn viết quyền truy cập vào phần đó của sổ đăng ký. Các giải thích có khả năng nhất là:

  1. Máy mà bạn chạy mã này có khóa cụ thể được bảo mật để giới hạn quyền ghi. Kiểm tra xem đây là trường hợp từ regedit. Điều hướng đến khóa, nhấp chuột phải vào phím trong chế độ xem dạng cây và chọn Quyền. Chọn tên người dùng của bạn và xem bạn có quyền gì. Bạn nên có Cho phép kiểm tra cho cả Kiểm soát hoàn toàn và Đọc.

  2. Bạn có một sản phẩm chống vi-rút hoặc chống phần mềm độc hại đang chạy đang chặn quyền truy cập ghi vào khóa đó. Vì khóa này được sử dụng rộng rãi bởi phần mềm độc hại, nên không có gì lạ đối với các sản phẩm chống phần mềm độc hại để chống lại. Bạn có thể chẩn đoán xem đây có phải là nguyên nhân hay không bằng cách tắt tạm thời tất cả các sản phẩm chống vi-rút hoặc chống phần mềm độc hại.

+0

Đây là giải pháp cho vấn đề của tôi. Comodo antivirus đã ngăn cản tôi ghi vào sổ đăng ký và khi tôi tắt nó, viết đã thành công! Cảm ơn rất nhiều David! – arebokert

+0

Ồ, được rồi: p – Nyerguds

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