Tôi có một ứng dụng (dịch vụ Windows) được cài đặt vào một thư mục trong thư mục Program Files. Cùng với ứng dụng này là một ứng dụng WinForms khác được sử dụng để cấu hình dịch vụ (trong số những thứ khác). Khi nó cấu hình, nó lưu các thay đổi vào một tập tin cấu hình sống cùng với dịch vụ.Cách đúng để xử lý UAC trong C#
Khi chạy trên Vista/Win7, UAC ngăn người dùng lưu tệp cấu hình. Những gì tôi muốn làm là:
- đặt biểu tượng cái khiên bên cạnh các mục trình đơn sử dụng để cấu hình
- lời nhắc về quyền UAC khi mục này được chọn
- chỉ hiển thị các biểu tượng/dấu nhắc khi trên một hệ điều hành mà đòi hỏi nó
- chỉ hiển thị các biểu tượng/dấu nhắc khi quyền được yêu cầu (ví dụ. nếu ứng dụng được cài đặt ở đâu đó mà không yêu cầu UAC phép)
tôi không thực sự muốn chạy toàn bộ ứng dụng với tư cách là quản trị viên, vì nó cũng được sử dụng cho các mục đích khác không yêu cầu quyền UAC (do đó, thiết lập tệp kê khai ứng dụng không phải là giải pháp chính xác). Tôi cũng giả định (sửa tôi nếu tôi sai) rằng một khi các điều khoản UAC đã được cấp, quy trình hiện tại của tôi không thể thực hiện hành động và tôi sẽ cần phải bắt đầu một quy trình mới.
Làm cách nào để đạt được điều này tốt nhất?
Tôi phải làm một chút nhảy qua hoops để mã này lên một cách chính xác, nhưng nhờ Matthew tôi đã có một cái gì đó tương tự như những gì tôi mô tả ở trên. – adrianbanks
Tốt để nghe. UAC đôi khi làm cho mọi thứ trở nên đau đớn, nhưng phần mềm của bạn thực sự tốt hơn cho nó. –