Chạy ứng dụng C# với quyền administrator trong windows 7

admin

Có rất nhiều chương trình ứng dụng được cài trên windows 7 (hay windows Vista)phải chạy dưới quyền Admin mới có thể tương tác với bộ nhớ trong ổ C (ổ cài đặt windows). Thông nhưng trên thực tế không phải ứng dụng nào mà chúng ta viết ra cũng có thể chạy với quyền user thông thường, do đó có một số tính năng sẽ hạn chế. Bài viết này sẽ trình bày cách thức để yêu cầu quyền admin khi bạn mở chương trình của mình chứ không phải click chuột phải rồi chọn “run as administrator”.

–  Có rất nhiều lập trình viên khi tạo project thường tạo trong ổ C (ổ đĩa cài đặt Windows) do đó khi debug chương trình thông thường sẽ nhận được thông báo lỗi là không thể mở được file thực thi của chương trình. Do đó để tránh khỏi lỗi này thì bạn nên tạo project của mình ở ổ đĩa khác ổ đĩa cài đặt Windows, hoặc chạy Visual studio với quyền Admin.

–  Cách trên là một cách có vẻ hơi né tránh vấn đề. Ví dụ như chương trình của bạn viết ra thực hiện một số tính năng mà chỉ có quyền Administrator mới có thể truy xuất được. Khi đó bạn không đưa ra quyền yêu cầu quyền admin từ user control thì chương trình sẽ báo lỗi. Dưới đây là ảnh về một chương trình Format ổ đĩa, khi người dùng click vào bình thường như mở các chương trình khác thì nó sẽ có thông báo lỗi.

image

–  Nếu ở cấp độ người dùng thông thường, họ cho rằng đây là một lỗi của chương trình nhưng thực sự không phải vậy. Nếu bạn click chuột phải vào chương trình và chọn “Run as administrator” và trong hộp thoại hiện ra chọn yes thì chương trình vẫn mở bình thường.

image

image

–  Vì những lý do trên, bạn nên tạo cho chương trình của mình khả năng yêu cầu quyền admin ngay từ đầu mà không phải click chuột phải như trong trường hợp trên. Dưới đây là cách thức làm điều đó:

+   Trong cửa sổ Solution Explorer của ứng dụng trên Visual Studio bạn click chuột phải vào project chọn Add –> New Item (hoặc nhấn Ctrl + Shift + A).

+   Trong cửa sổ hiện ra, chọn “Application Manifest File” và đặt tên cho nó. Sau đó click nút Add.

image

+ Sau khi click nút Add bạn sẽ thấy trong thanh solution explorer xuất hiện file .manifest với tên vừa tạo

image

 

+   Click vào file đó thì cửa sổ soạn thảo sẽ mở ra với một file code kiểu xml. Bạn cần chú ý nội dung dòng mà tôi tô màu vàng dưới đây:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

image

+   Để chương trình của bạn ra lời gọi chạy với quyền admin bạn cần thay “asInvoker” trong dòng code trên thành “requireAdministrator”. khi đó dòng code đó sẽ trở thành.

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

image

+   Bầy giờ bạn nhấn F5 để chạy chương trình, khi đó Visual Studio 2010 sẽ xuất hiện thông báo sẽ khởi động lại visual để chạy với quyền Admin. Chọn “Restart under different credentials”

image

+   Bây giờ visual sẽ khởi động lại và đưa ra yêu cầu chạy quyền admin, bạn chọn “Yes”. Sau đó nhấn F5 thì chương trình sẽ chạy bình thường.

+   Bạn thử mở file thực thi .exe của chương trình lên. Bạn sẽ nhận được thông báo yêu cầu quyền Admin. Chọn yes để chạy chương trình của bạn với quyền cao nhất.

image

–  Click vào đây để download project demo Run As Administrator in Windows 7 viết trên Visual studio 2010.

Chúc bạn thành công!

Advertisements

About thanhcuong1990

Handsome and talent!! ^^
This entry was posted in C#. Bookmark the permalink.

6 Responses to Chạy ứng dụng C# với quyền administrator trong windows 7

  1. ClickOnce does not support the request execution level ‘requireAdministrator’.
    Ứng dụng của mình khi chạy nó báo lỗi này.
    Xử lý như thế nào pro