VB程序單文件在WIN7下自動調用管理員權限運行程序!


近期做一個NOD32的Key程序時,在win7遇到一個管理員權限的問題,就是很多時候在WIN7無法修改注冊,使得我程序不能實現相應目的,最終還是在百度幫助下做完成了,現在把我解決的方法與大家交流一下。

正文:
   現在已經是一個小部分WIN7與大部分XP共存的世界,但為了這小部分考慮win7情況也是不可避免的問題。

很多網友懷疑win7下VB有問題,按目前我自己使用情況32位旗艦版下,完成沒有任何問題,還包括眾多插件也是沒有任何問題,只有一些用到了必須用到管理員權限東西時就比XP多一點,這一類程序必須右鍵以管理員才能正確運行,很多用戶他們根本不會做這一點,所以使得這一類程序出現不同問題,如不能修改注冊表的特殊項了等等。


參考了一下網上,發現大部分是關delphi、c++的內容,
綜合了這方面內容,與以前XP模式的內容,得出怎樣VB怎樣在WIN7以管理員運行且單文件化無控件化(當然你帶不介意帶一個manifest文件,那就只要完成第一步就完成了!)。

一、首先參考(http://msdn.microsoft.com/en-us/library/bb756929.aspx)建立一個manifest文件

我做法就是:
1、新建一個文本文件。
2、寫入以下內容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="IsUserAdmin"
     type="win32"/> 
<description>Description of your application</description> 
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
</trustInfo>
</assembly>
3、另存為一個與你程序名稱(包括Exe后綴)相同manifest文件,如:abc.exe.manifest 。


二、做一個資源文件名為類型為“24”的資源文件。


         我的做法參考以前“XP界面”方法,有二種如下:
       
 兩種方法都必須建一個RC文件,方法:新建一個文本,寫入“1 24 abc.exe.manifest”雙引號里面的   內容(當然abc.exe.manifest得與你第一制作的manifest文件相同名字),另存為一個任意名的RC文件,如:ABC.rc
第一種就是你有VC的用vc打開RC文件,之后另為RES文件就OK了。
第二種就是純VB人員了,就得用VB自帶的(不排除一些綠色版也沒有這個文件!)方法:打開CMD,進入VB安裝目錄的Wizard文件夾(如:cd C:\Program Files\Microsoft Visual Studio\VB98\Wizards 之后回車),再輸入 “rc /r 你的RC文件路徑”(如:rc /r e:\vb\win.rc),得到的資源文件,通過VB資源管輯器導入后編譯你的程序就完成了。

三、當然在win7試一下效果。我的是OK,就不知大家怎樣。

注:當然你在WIN7是登錄時有管理員權限的,這個方法不是強行提高權限,只是為用戶省下右鍵點管理員權限而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM