Sau đây là các bước sau:
1. Remove XPMan
: Hủy bỏ bất kỳ tham chiếu đến XPMan
thành phần trong dự án của bạn. XPMan
thêm tệp kê khai mặc định vào tệp thực thi để ngăn Windows xem biểu hiện được tùy chỉnh của chúng tôi. Bạn không nên lo lắng về Chủ đề XP được cung cấp bởi XPMan
, hỗ trợ chủ đề được giữ nguyên trong tệp kê khai sau.
2. Tạo tệp kê khai tùy chỉnh: Tạo tệp như Win7UAC.manifest
trong thư mục dự án (tên tệp thực sự không quan trọng). thêm các dòng sau vào Win7UAC.manifest
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="App" version="3.1.0.0" processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
Bạn có thể thêm các mục khác vào tệp kê khai này. Bạn cũng có thể xóa Microsoft.Windows.Common-Controls
các phần để tắt hỗ trợ chủ đề.
3. Biên soạn manifest tới một tài nguyên: Tạo một file có tên Win7UAC.rc
trong thư mục dự án có chứa một dòng như:
1 24 "Win7UAC.manifest"
Để biên soạn tệp này, hãy vào cmd, điểm đến dự án thư mục và chạy lệnh sau:
brcc32.exe Win7UAC.rc
4. Thêm tài nguyên (manifest) cho dự án: Chỉ cần thêm dòng sau bất cứ nơi nào bạn muốn trong một trong các tập tin đơn vị của dự án:
{$R 'Win7UAC.res'}
Một nơi thích hợp cho việc thêm dòng này là trong tập tin chính dự án (thường là tên Project1.dpr
) và dưới dòng {$R *.res}
.
5. Rebuild dự án
6. Ghi bất cứ khi nào bạn thêm phần XPMan để bất kỳ của các đơn vị dự án, biểu hiện UAC này sẽ không hoạt động đúng.
Sử dụng 'cao nhất có sẵn', theo đề xuất của Cosmin và Sigurdur, kết quả trong chương trình khởi động mà không có quyền quản trị nếu người dùng không phải là quản trị viên. Nếu ứng dụng của bạn chỉ có thể làm công việc hữu ích nếu nó chạy với quyền quản trị thì bạn nên sử dụng 'requireAdministrator' thay thế. Trong trường hợp người dùng là quản trị viên thì hộp thoại độ cao phê duyệt UAC sẽ hiển thị. Trong trường hợp người dùng là người dùng chuẩn thì hộp thoại nâng cao UAC "over-the-vai" sẽ hiển thị. –
Ngoài ra, bạn đề cập đến XP nhưng tôi không tin rằng bạn có thể hiển thị các vấn đề về quyền quản trị. Trên XP, nếu bạn muốn một người dùng chuẩn chạy một ứng dụng với tư cách quản trị viên thì tôi tin rằng bạn cần sử dụng 'RunAs'. –
Bạn có thể tìm thấy giải pháp tự động trong ** [this] (http://www.delphifeeds.com/go/f/80334?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:%20delphifeeds%20%28DelphiFeeds.com%29) * * bài báo. – avra