2011-11-15 193 views
3

如何使C++命令應用程序以管理員身份運行?C++控制檯應用程序提示「以管理員身份運行」以管理員身份運行?

im正在創建的程序需要管理員權限,所以最好讓用戶以管理員提示的形式運行。 我該怎麼做?

注意:我沒有使用Visual Studio,即時通訊使用Code :: Blocks 10.05;

-Stian

+0

您可以右鍵單擊該exe文件,選擇Compatibility選項卡,然後選中Run as administr ATOR。現在,每次啓動exe時,它都將以管理員身份運行。 – kol

+0

這是一個程序,誰不知道如何做到這一點的人可以使用它,這是更多的人而不僅僅是我! – Stian

回答

3
+0

在Code :: Blocks中應用程序清單在哪裏? – Stian

+0

@StianOlsen使用['mt'](http://msdn.microsoft.com/zh-cn/library/ms235591.aspx)嵌入清單,或者只需放置一個'.manifest',其名稱與' .exe'在同一個目錄中,例如'foo.exe'和'foo.exe.manifest'。 – ephemient

+0

您必須使用文本編輯器手動創建它。以我的答案爲例。 – Polynomial

7

您可以創建清單文件來聲明應用程序需要提升給管理員。這是一個普通的文本文檔,您可以在記事本中創建,並且在應用程序執行時由Windows加載。

下面是一個名爲MyApplication的應用程序的清單示例。

<?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="MyApplication" 
    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> 

然後簡單地將其命名爲MyApplication.exe.manifest(更換MyApplication與任何可執行文件的名字),它會通過UAC自動獲取加載。

您也可以將清單嵌入到可執行文件的資源部分,如果您適當地命名它。

有關詳細信息,請參閱本:http://msdn.microsoft.com/en-us/library/bb756929.aspx

7

您還可以使用shell:

右鍵單擊該項目=>配置屬性 =>鏈接 =>清單文件 =>highestAvailable(/ level ='highestAvailable')

+0

找到這個答案更有用;如果你有一個新的控制檯項目,並希望這樣做,這是如何。如果你有一個項目你已經設置了自己的清單,那麼其他答案就可以工作,但是默認情況下,許多VS項目會爲你創建清單。 – aggieNick02

相關問題