delphi 运行时提升软件到管理员权限
2024-10-20 08:46:04
//以管理员身份运行
procedure RunAsAdmin(hWnd: HWND; aFile: string; aParameters: string);
var
sei: TShellExecuteInfoA;
begin
FillChar(sei, SizeOf(sei), 0);
sei.cbSize := SizeOf(sei);
sei.Wnd := hWnd;
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
//把按钮设置成需要管理员运行样式,也就是加个图标到按钮上
procedure SetElevationRequireState(aControl: TWinControl; Requiered: Boolean);
const
BCM_FIRST = $1600;//Button control messages
BCM_SETSHILED = BCM_FIRST + $000C;
var
lRequired: Integer;
begin
lRequired := Integer(Requiered);
SendMessage(aControl.Handle, BCM_SETSHIELD, 0, lRequired);
end;
最新文章
- [No000091]SVN学习笔记2-TortoiseSVN Client初级操作update(获取)、commit(提交)
- Java Web 学习链接
- iOS开发——UI进阶篇(十五)Quartz2D介绍
- jQuery常用操作方法及常用函数总结
- BZOJ 4531: [Bjoi2014]路径
- 打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
- 【linux】grub详解
- [BZOJ 3888] [Usaco2015 Jan] Stampede 【线段树】
- cache 的设计与实现--转载
- Linux中Apache服务器的简单配置
- 大数据技术 - 通俗理解MapReduce之WordCount(三)
- AngularJS 启程
- 2018.06.29 洛谷P2890 [USACO07OPEN]便宜的回文(简单dp)
- 在Kubernetes上使用Traefik
- [py][mx]django实现课程机构排名
- Python VIL Realse
- [Swift]遍历集合类型(数组、集合和字典)
- Shp上传至Oracle Spatial
- Scurm 术语
- 【算法剖析】寻找两个已序数组中的第k大元素