C 應用程式中管理員權限的運行時提升
在運行時向作業系統請求管理員權限的能力對於某些人來說是一項理想的功能應用程式。在 Windows 中,可以透過各種機制實現此功能。
編譯時提升
如問題中所述,可以在編譯期間向應用程式授予管理員權限透過將應用程式的清單設定為「requireAdministrator」。但是,如果在運行時出現提升的要求,則需要其他方法。
運行時提升
要在運行時提升現有應用程式的權限,存在多種選項:
外部清單
與編譯時提升類似,可以建立外部清單並將其與應用程式的可執行檔關聯。此清單可以將“requestedExecutionLevel”指定為“requireAdministrator”。
RunAs Verb
透過在 ShellExecute 函數中使用「runas」動詞,可以以提升的權限啟動流程。此選項允許在執行進程之前提示使用者輸入管理員憑證。
專門針對當前實例
如果目標是提升目前實例的權限在不遺失記憶體中保留的資料的情況下,可以使用Windows「CreateSymbolicLinkW」函數建立指向管理員帳戶可執行檔的符號連結。此技術涉及創建與正在運行的應用程式同名的符號鏈接,並將其指向可執行檔的提升版本。然後可以執行提升的版本,繼承原始應用程式的記憶體和資源。
以上是如何在運行時提升 C 應用程式的管理員權限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!