Tôi đang cố gắng sử dụng Java để tạo khóa khởi động đăng ký và tôi nhận được kết quả thực sự kỳ lạ. Trên một số hệ điều hành như XP lệnh hoạt động hoàn hảo. Tuy nhiên, trên Windows 7 nó chỉ tạo ra khóa nếu bạn chạy jar hoặc các lớp được biên dịch, chứ không phải từ một applet trên một trang web. Ngoài ra trên Windows 8, lệnh không hoạt động chút nào. Tôi đã thử gỡ lỗi này, và có vẻ như lệnh REG đang thực hiện thành công. Nếu tôi chạy lệnh theo cách thủ công từ dấu nhắc lệnh, nó sẽ tạo ra các khóa, với cùng đầu ra như khi nó chạy từ bên trong chương trình. Heres một ví dụ về mã:Lệnh Windows REG không hoạt động khi được thực hiện từ ProcessBuilder trong Java
public static int regadd(String key, String name, String val) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder(new String[]{"REG", "ADD", key, "/v", name, "/d", val, "/f"});
pb.redirectOutput(new File(PathManager.getDirectory(), "log0.txt"));
int i = pb.start().waitFor();
Logger.log("ADD: " + i);
return i;
}
Trong log0.txt nó in này:
Các hoạt động thành công.
Thêm vào đó, "kết quả" của chương trình in
ADD: 0
Vì vậy, tại thời điểm này, tôi đang ở một mất mát của những gì có thể là vấn đề. Tôi nhận thức được các cách dicey khác để thêm vào sổ đăng ký, nhưng tôi muốn giữ mã của tôi tương thích với tất cả các bản phân phối VM. Có cách nào để thực hiện điều này hoặc sửa chữa phương pháp thoát?
Hai thứ nhảy ra, 1- * "và không phải từ applet trên trang web *" Applet chạy trong hộp cát bảo mật, có nghĩa là chúng có chức năng rất hạn chế khi truy cập máy khách, như chạy các quy trình ví dụ, vì vậy trừ khi applet được ký và có các quyền bảo mật thích hợp, điều này sẽ thất bại. 2- Windows 7+ có một mô hình bảo mật khác với XP. Nó có thể là người quản lý bảo mật của Windows đã bước vào và ngừng hành động diễn ra, và làm như vậy lặng lẽ. Có một số lý do chính đáng cho việc này, nhưng tôi đang chạy ra khỏi phòng. – MadProgrammer
Bạn "có thể" thử chạy trình duyệt dưới dạng "Quản trị", nhưng tôi không chắc liệu điều này có tạo sự khác biệt về cách chạy plugin Java ... – MadProgrammer
[Registry Virtualization (Windows) - MSDN - Microsoft] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa965884(v=vs.85).aspx) – Holger