2012-07-12 5 views
6

Tôi có một chương trình sử dụng sổ đăng ký để lưu 10 tệp mới nhất đã được mở. Tại một thời gian tôi đã cố gắng để lưu chúng trong máy địa phương, nhưng thay vì quyết định để lưu chúng trong người dùng hiện tại. Trong quá trình cố gắng để có được tất cả mọi thứ để làm việc tôi tạo ra một biểu hiện để buộc chương trình để chạy như quản trị viên, mà tôi không tin là cần thiết nữa. Vấn đề tôi gặp phải là tôi dường như không thể loại bỏ yêu cầu.Cách xóa yêu cầu "Chạy với tư cách quản trị viên" trong C#

Tôi có .... Đã thay đổi thuộc tính dự án thành "Tạo ứng dụng không có tệp kê khai", Thêm mục mới có tên app.manifest mặc định là asInvoker và thay đổi thuộc tính để sử dụng tệp kê khai đó, đổi tên bất kỳ tệp nào tệp kê khai từ trong tên tệp.

Không có nỗ lực nào trong số này hoạt động. Chương trình vẫn đang chạy với tư cách quản trị viên. Tôi phải thiếu một cái gì đó nhưng tôi không chắc chắn những gì.

Dưới đây là các dòng trong app.manifest

<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
    </requestedPrivileges> 

Thanks for the help !!

Gary

+0

Xóa tệp kê khai khỏi dự án. Bạn rõ ràng đang làm điều gì đó sai, không chắc chắn những gì để gợi ý, cho bạn cung cấp cho chúng tôi với các chi tiết rất ít. Bạn đã thử chỉnh sửa đơn hiện tại và/hoặc tự tái tạo giải pháp chưa? –

+0

làm thế nào về một mẫu mã .. nếu bạn thêm một cái gì đó bạn chắc chắn có thể loại bỏ nó, trừ khi bạn không hiểu những gì nó được thêm vào ở nơi đầu tiên liên quan đến mã C#/chức năng – MethodMan

+2

Tôi không chắc chắn mã bạn muốn mẫu của. Như tôi đã nêu trong câu hỏi ban đầu, tôi đã xóa tệp kê khai khỏi dự án bằng cách thay đổi cài đặt dự án hoặc ít nhất đó là ý định của tôi. – Gary

Trả lời

8

Hãy xem tệp app.manifest trong thư mục Thuộc tính. Hủy bỏ các dòng sau:

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

Thêm dòng sau thay vì điều này:

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

Nếu điều này không giúp đỡ, trước tiên hãy chắc chắn rằng bạn cũng loại bỏ các file manifest từ thư mục bin \ Debug. Đơn giản chỉ cần loại bỏ nó từ giải pháp không giúp đỡ, bởi vì các tập tin có thể vẫn còn có sẵn trong thư mục đầu ra.

Đó là lý do tại sao tôi cho rằng bạn không nên xóa tệp kê khai khỏi dự án, nhưng thay đổi nó hoạt động như mong đợi.

+0

Cảm ơn bạn đã trả lời! Không có tệp kê khai trong thư mục Gỡ lỗi. Tôi đã thay đổi thuộc tính dự án để sử dụng app.mainfest (tôi đã cập nhật câu hỏi gốc để bao gồm các dòng có liên quan) và xây dựng lại dự án và nó vẫn chạy với tư cách quản trị viên – Gary

+2

Khi tôi tiếp tục chuyển tiếp và sau khi thực hiện những gì bạn đề xuất, tôi không còn có vấn đề. Tôi đã biên soạn chương trình một vài lần kể từ khi thêm app.maifest. Các frist vài lần tôi nhìn để xem nếu yêu cầu vẫn còn đó và nó được. Tôi không biết khi nào nó thay đổi, nhưng cảm ơn !! – Gary

2

Mặc dù câu hỏi này đã cũ hơn một năm nhưng tôi đang trả lời vì nó có thể tiết kiệm một ngày.

Nếu bạn đã định cấu hình ứng dụng của mình để chạy dưới dạng chế độ quản trị viên và bây giờ bạn muốn thu hồi các quyền đó thì bạn cần thực hiện các bước sau.

Thay đổi

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

Để

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

Nhấp chuột phải vào dự án của bạn -> Làm sạch giải pháp của bạn -> Rebuild giải pháp của bạn và đó là nó.

+0

Bạn thay đổi điều đó từ đâu? Dự án Thiết lập của tôi không có App.config cũng không có khả năng thêm. Tôi thấy điều này 'trả lời' ở khắp mọi nơi nhưng không có lời giải thích làm thế nào để tạo app.config/manifest đó. – ExtremeSwat

+0

Tại sao bạn không thể thêm? Bạn đang làm việc với loại dự án nào? Nó là một ứng dụng hình thức giành chiến thắng? – Ehsan