2010-07-21 308 views
2

delphi,如何啓動具有管理權限的應用程序?

我想運行我的應用程序與管理員權限的Vista或贏7有沒有解決這個你可能知道嗎?

相關的問題:

Want to learn if my application has admin rights?

感謝。

+2

那麼你應該問兩個問題;) – snowflake 2010-07-21 14:06:12

+0

你能精確: - 如果你想運行具有「內嵌」管理員權限您的應用程序的EXE? - 如果用戶可以進行特殊操作(如SHIFT +右鍵)? - 如果每臺計算機的每個窗口配置都可以更改? - 如果它是您正在尋找的耐用或開發解決方案? – snowflake 2010-07-21 14:10:03

+0

@snowflake我問了兩個問題,因爲我認爲他們是相關的。 我只是想改變任何Windows設置像文件訪問權限.. 如果我不能以管理員身份運行我的應用程序,那麼我想警告用戶以管理員身份運行應用程序 。 – adnanturken 2010-07-21 14:25:01

回答

7

以管理員權限運行程序我有迄今爲止工作的這個功能。

procedure RunAsAdmin(const aFile: string; const aParameters: string = ''; Handle: HWND = 0); 
var 
    sei: TShellExecuteInfo; 
begin     
    FillChar(sei, SizeOf(sei), 0); 

    sei.cbSize := SizeOf(sei); 
    sei.Wnd := Handle; 
    sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI; 
    sei.lpVerb := 'runas'; 
    sei.lpFile := PChar(aFile); 
    sei.lpParameters := PChar(aParameters); 
    sei.nShow := SW_SHOWNORMAL; 

    if not ShellExecuteEx(@sei) then 
    RaiseLastOSError; 
end; 
+0

嗨,這是AunAsAdmin函數本質遞歸...因爲我使用這個函數,但它本質上是循環的,我不得不結束任務,以阻止這一點。 – 2017-12-06 14:01:27

相關問題