2012-02-16 32 views
8

Tôi đang chỉnh sửa đăng ký Windows thông qua phần mềm của mình, ví dụ như thay thế Shell (ứng dụng Kiosk).Tránh đặt lại khó khăn khi xóa các thay đổi đăng ký trong WIN7?

Bây giờ tôi vừa nhận thấy rằng trong Win7 nếu xảy ra lỗi cứng (nút đặt lại hoặc nút nguồn thứ 4) tất cả các thay đổi của đăng ký sẽ bị mất.

Theo WinXP tuy nhiên nó hoạt động tốt, ngay cả sau khi khôi phục cài đặt gốc những thay đổi tôi đã thực hiện vẫn ở đó.

Tôi có phải làm bất cứ điều gì đặc biệt sau khi chỉnh sửa sổ đăng ký theo Win7 hoặc đây có phải là tính năng bảo mật có sẵn trong Win7 không?

Đối với tôi, có vẻ như các thay đổi sổ đăng ký không được hoàn thành và chỉ được lưu trong bộ nhớ cho đến khi cài đặt lại mềm xảy ra, điều này có đúng không? Nếu vậy, tôi có thể buộc phải cứu bằng cách nào đó không?

+1

Bạn có đang chạy phần mềm 32 bit trên 64 Windows không? Có thể đăng ký ảo hóa có liên quan. Các khóa bạn đặt lại ở đâu? – ixe013

+0

Ngoài câu hỏi của @ ixe013, ứng dụng của bạn có đang chạy dưới tài khoản Quản trị viên khi nó thực hiện thay đổi đăng ký không? –

+0

Điều này đã được thực sự đúng, tôi đã thử nó trên một Win7 64bit, mặc dù tôi chỉ thử nó trên một máy 32bit, kết quả là như nhau. Ngoài ra, vâng tôi đang sử dụng tài khoản Quản trị viên. – user990767

Trả lời

12

Có vẻ như bạn muốn có chức năng RegFlushKey.

Hàm RegFlushKey chỉ trả về khi tất cả dữ liệu cho tổ có chứa khóa được chỉ định đã được ghi vào lưu trữ đăng ký trên đĩa.

Chức năng RegFlushKey ghi dữ liệu cho các phím khác trong tổ ong đã được sửa đổi kể từ lần khởi động lười hoặc khởi động hệ thống cuối cùng.

+0

Điều này trông thực sự giống như những gì tôi muốn. Tôi đã cố gắng để google cho một ví dụ về cách sử dụng nó, nhưng không có gì thực sự đưa ra, bạn có thể xin vui lòng cho tôi một ví dụ về cách sử dụng nó? – user990767

+0

@ user990767: Bạn chỉnh sửa registry như thế nào? Bạn có đang sử dụng các hàm WinApi (vì vậy bạn có một 'HKEY') hoặc một cái gì đó được xây dựng trong Delphi? –

+8

Ben: +1. @user, nếu bạn đang sử dụng 'Tregistry' của Delphi, hãy đặt' TRegistry.LazyWrite' thành false trước khi viết khóa của bạn. Nó thực hiện 'RegFlushKey' cho bạn trước khi đóng khóa. –

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