以管理员运行程序的方法有很多种,包含在 manifest 文件中请求权限,兼容性设置及下面说的 runas。
runas 算是一种比较另类的方法,它是通过重新启动程序以管理员方式运行的方式来让新的进程以管理员方式运行,然后退出当前进程,以达到以管理员身份运行的目的。
要执行这个操作实际上很简单,用众所周知的 ShellExecute 函数就可以,参考代码如下:
AFileName := ParamStr(0); SetLength(AParams, 0); for I := 1 to ParamCount - 1 do AParams := AParams + QuotedStrW(ParamStr(I), '"') + ' '; ShellExecuteW(0, 'runas', PChar(AFileName), PChar(AParams),PChar(GetCurrentDir), SW_SHOWNORMAL); PostQuitMessage(0);