[源码和文档分享]使用ShellExecute函数实现以管理员身份运行程序

el/2024/4/20 14:44:54

背景

在 Win7 或者 Win7 以上版本的系统,我们想以管理员身份运行一个程序的时候,只需要选中这个程序文件,鼠标右击,选择“以管理员身份启动”就可以了。但是,在实际的编程中,我们要以管理员身份创建一个进程该怎么操作呢?

可能有人会想,创建一个进程,那使用 CreateProcess 函数创建就可以了。是的,CreateProcess 是可以创建一个进程,但是它不能以管理员权限创建进程。换句话说,它只能创建一个权限比它低或者相同权限的进程。若是一个普通进程,它就创建不了管理员权限进程。

本文要介绍的 ShellExecute 函数,可以实现创建管理员权限进程。但是,如果系统开启了UAC(用户账户控制),则会弹窗提示是否要以管理员权限运行。现在,我就把这个小程序实现的过程进行整理,分享给大家。

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1818.html


http://www.ngui.cc/el/3015653.html

相关文章

[源码和文档分享]基于WinPcap实现的UDP发包程序

背景 一天,一位同学打电话给我说,让我帮忙开发一个基于WinPcap工具的UDP发包工具,还特地叮嘱是基于WinPcap,不要原始套接字Raw Socket。而且,时间只有一个白天,它晚上就要,而打电话给我的时候&…

[源码和文档分享]编程实现监控U盘或者其它移动设备的插入和拔出

背景 如果在没有阅读本文之前,可能你会认为编程实现监控U盘或者其它移动设备的插入和拔出,是一个很难的事情,或者是一个很靠近系统底层的事情。其实,这些你完全不用担心,Windows 已经为我们都设计好了。 我们都知道&…

[源码和文档分享]基于Skin++库实现的换肤功能

背景 之前自己经常使用MFC来开发一些界面程序,这些程序大都是自己练手用的。但,也会有极个别是帮别人开发,给别人使用。当你辛苦做出来的作品拿出去给别人用的时候,你总想让自己的作品给人留下深刻印象,无论是从功能&…

[源码和文档分享]使用SHFormatDrive函数实现格式化磁盘

背景 某天,无意中在网上搜索资料的时候,看到一篇帖子,就是将如何编程实现格式化操作的。我便看了下,原来调用的是 SHFormatDrive 函数实现的。和我们选中磁盘驱动器,鼠标右击选择“格式化(A)…”弹出来的格式化窗口是…

[源码和文档分享]编程使用WMI

背景 WMI出现至今已经二十多年了,但很多人对它并不熟悉。知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么? WMI有一组API。我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库&#xff…

[源码和文档分享]编程实现硬盘型号序列号固件版本号检测

背景 硬盘是计算机文件主要存储的地方,它和我们的生活息息相关。硬盘也有不同的生产厂商,为了能够区别每一块硬盘,所以,硬盘本身就会有型号、序列号、固件版本号等一些列的标识。 本文主要讲解的就是编程实现,获取计…

[源码和文档分享]使用GetRawInputData函数实现键盘按键记录

背景 对于按键记录这方面的功能自己写过几个,实现的方式也都不同。例如在应用层,可以使用全局键盘钩子实现按键记录,也可以使用获取系统设备原始输入方式来实现按键记录。在内核层下,我们可以在驱动设备上面挂在一个键盘过滤设备…

[源码和文档分享]使用FindFirstFile和FindNextFile函数实现文件搜索遍历

背景 文件搜索功能,应该是比较常用的功能了,大都数程序都会或多或少涉及到文件搜索这部分的内容。同样的,强大的WIN32 API也为我们封装好了相应的文件搜索的函数接口,我们只需按照函数的使用规则,调用相应的函数实现即…

[源码和文档分享]编程实现U盘插入自动复制U盘内容到本地

背景 U盘插入计算机后,不用任何操作,程序自动将U盘里的文件都拷贝到本地计算机上。这个功能是我自己开发的“恶魔的结界”系列程序里的一个小功能,至于有什么用,那就看个人的爱好了。在此,只探讨技术,不探…

[源码和文档分享]实现32位和64位系统的Inline Hook API

背景 API HOOK技术是一种用于改变API执行结果的技术,Microsoft 自身也在 Windows 操作系统里面使用了这个技术,如Windows兼容模式等。 API HOOK 技术并不是计算机病毒专有技术,但是计算机病毒经常使用这个技术来达到隐藏自己的目的。 本文就…