VC编写vista或win7下需要管理员权限运行的程序

RA8D2 OSPI控制器寄存器深度解析:XiP模式与手动命令实战指南 在嵌入式系统开发中,外部存储器接口的性能直接决定了图形显示、实时数据处理等应用的效率。传统SPI接口因其半双工、单线通信的特性,已成为数据传输的瓶颈。为此,现代微控制器普遍集成了高速Octal SPI(OSPI)控制器,通过支持8条数据线并行传输,将理论带宽提升至传统SPI的八倍。其核心价值在于能够实现高效的XiP(eXecute in Place)模式,允许CPU直接从外部Flash执行代码,极大节省了内部RAM资源。然而,充分发挥OSPI性能,尤其是稳定实现XiP模式,高度依赖于对控制器寄存器组的深入理 阅读详情
VC编写vista或win7下需要管理员权限运行的程序

VC编写vista或win7下需要管理员权限运行的程序 

程序有com,需要注册,但是在win7上面如果不是管理员权限的话,执行就会失败。

先是通过代码提升用户权限的。代码如下:

view plain
copy to clipboard
BOOL UpgradeProcessPrivilege(HANDLE hProcess, LPCTSTR lpPrivilegeName ) 
{ 
HANDLE hToken = NULL; 
if(OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken)) 
{ 
LUID Luid; 
if(LookupPrivilegeValue(NULL, lpPrivilegeName, &Luid)) 
{ 
TOKEN_PRIVILEGES tp; 
tp.PrivilegeCount = 1; 
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
tp.Privileges[0].Luid = Luid; 
return( AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL) ); 
} 
} 
return FALSE; 
} 
view plain
BOOL UpgradeProcessPrivilege(HANDLE hProcess, LPCTSTR lpPrivilegeName ) 
{ 
HANDLE hToken = NULL; 
if(OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken)) 
{ 
LUID Luid; 
if(LookupPrivilegeValue(NULL, lpPrivilegeName, &Luid)) 
{ 
TOKEN_PRIVILEGES tp; 
tp.PrivilegeCount = 1; 
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
tp.Privileges[0].Luid = Luid; 
return( AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL) ); 
} 
} 
return FALSE; 
} 
// UpgradeProcessPrivilege(GetCurrentProcess(),SE_DEBUG_NAME); 


很奇怪,生成的文件,在桌面上时就没有问题,运行时会提示是否管理员权限,

但是拷到其他地方就不行了。无语。

于是探索另外的方法了。


找到了一些方法,因我的是vs2005,所以下面方法一是成功的。



方法一: 导入manifest文件

1.如果你使用的是VC6或者vs2003,,2005,通过导入manifest文件解决

view plain
copy to clipboard
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
version="1.0.0.0" 
processorArchitecture="X86" 
name="test.exe.manifest" 
type="win32" 
/> 
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
<security> 
<requestedPrivileges> 
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
</requestedPrivileges> 
</security> 
</trustInfo> 
</assembly> 


注:此文件只要扩展名是.manifest文件名可以任意。文件内容的name属性值也可以为任意。(VC6.0下经过测试)

2.把此文件"import"到资源文件中,资源类型为24,资源ID为1,

注:经测试资源类型必须为24,资源ID也必须为1,

3.重新编辑即可,在windows7下该程序图标有一个盾状小图标,双击运行会出现对话框要求提升为管理员权限。



如果是vs2008或者2010,就比较简单了,直接项目右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译 这样你的程序直接运行就拥有管理员权限了。程序就会出现一个盾牌。




方法二:修改注册表:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files\\win7test2.exe"="RUNASADMIN"

将上面的内容保存为.reg文件,基中把C:\\Program Files\\win7test2.exe改为真实环境的应用程序地址,双击运行即可。

这种方法后应用程序图标不会有盾状图标,但双击运行仍然会弹出对话框要求提升权限。
强化学习实战:如何用PPO算法训练一个超级马里奥AI(附完整代码) 本文提供了一份详细的强化学习实战指南,教你如何使用PPO算法训练一个能玩《超级马里奥》的AI智能体。内容涵盖从环境搭建、自定义奖励函数设计到PPO智能体的PyTorch完整实现,并附有可运行的代码,帮助开发者快速上手游戏AI开发。 阅读详情

相关推荐

HttpClient跳过HTTPS证书验证的3种实战方法(含完整代码示例)

本文详细介绍了HttpClient跳过HTTPS证书验证的3种实战方法,包括自定义TrustManager、SSLContext配置和HttpClientBuilder高级定制,并提供完整代码示例。这些方法适用于开发和测试环境,帮助开发者快速解决自签名证书或未认证证书导致的HTTPS请求失败问题,但需注意生产环境的安全风险。

weixin_29213655的博客 530

C/C++ 进程/线程/模块遍历

另外,Windows系统的进程和模块信息可能因系统版本和配置不同而有所差异,可能无法获取某些系统进程的信息。需要注意的是,要获取指定进程的模块列表,当前进程需要有足够的权限。注意,该代码只能在Windows系统上运行,并需要以管理员权限运行,以获取完整的进程信息。注意,该代码只能在Windows系统上运行,并需要以管理员权限运行,以获取完整的进程信息。注意,该代码只能在Windows系统上运行,并需要以管理员权限运行,以获取完整的模块信息。表示获取进程信息的快照,第二个参数0表示获取当前系统的进程信息。

微软技术分享 1万+

ABAP FB05 清账实战:POSTING_INTERFACE_CLEARING 核心参数与业务场景解析

本文深入解析ABAP FB05清账操作中的核心函数POSTING_INTERFACE_CLEARING,详细讲解其关键参数与业务场景应用。通过实战案例展示收款清账(EINGZAHL)流程,提供常见错误排查方法,并分享批量清账优化与财务凭证集成的高级技巧,帮助开发者高效处理SAP财务模块清账需求。

weixin_33423874的博客 475

c语言查看进程模块,C/C++ 实现windows进程/线程/模块 遍历

#include #include#include#includeBOOL SetProcessPrivilege(char *lpName, BOOL opt);int main(int argc, char *argv[]){PROCESSENTRY32 pe32;MODULEENTRY32 me32;HANDLE hProcess, hSnapshot_proc, hSnapshot_mod...

weixin_39843698的博客 373

电子取证之服务器取证思路

服务器取证是一个技术性很强的领域,涉及到多个环节,包括网站重构、网站代码分析、容器分析等。数据库密码的获取通常通过查看配置文件、日志文件、备份等途径,同时可以通过一些绕过技术如禁用身份验证来获取权限。对于不同的数据库,需要根据其特性采取相应的应对方法和命令。

2401_84830066的博客 2490

S7-200 SMART Modbus RTU从站配置与调试实战指南

本文提供了一份详细的S7-200 SMART PLC配置为Modbus RTU从站的实战指南。内容涵盖从硬件基础、软件准备、指令库调用、核心编程到地址映射与调试排错的完整流程。重点解析了MBUS_INIT与MBUS_SLAVE指令的关键参数配置,并深入探讨了Modbus地址与PLC内部V存储区的对应关系,帮助工程师快速打通通讯链路,实现与上位机、触摸屏等主站设备的稳定数据交互。

potato的博客 754

【干货】Windows进程注入之CreateRemoteThread

函数介绍 百度百科 CreateRemoteThread是一个Windows API函数,它能够创建一个在其它进程地址空间中运行的线程(也称:创建远程线程) 这个函数很好理解,即控制其它进程来运行一个线程!由于是控制其它进程运行所以函数的参数以及需要的数据必须存在目标进程中,否则必须将数据写入到目标进程中,写入数据的过程如下: Cre...

weixin_34109408的博客 1283

机器翻译的评价标准:BLEU、ROUGE等指标说明及代码实现

机器翻译领域常用的自动评价指标主要包括BLEU、ROUGE、METEOR和COMET四大类。BLEU基于n-gram精确率和短句惩罚,ROUGE关注召回率,METEOR结合精确率和召回率并考虑同义词,COMET则利用预训练模型计算语义相似度。这些指标各有特点:BLEU适用于机器翻译,ROUGE对长句友好,METEOR更接近人工评分,COMET无需参考译文。代码实现上,sacrebleu、rouge-score等库提供了便捷的计算方式。新兴趋势包括基于BERT等模型的语义评估和大语言模型评估器,但传统指标仍占

数据知道的博客 9419

【超详细】遍历Windows进程

摘要 遍历系统进程常用的有三种方式 头文件<Tlhelp32.h>,先使用CreateToolhelp32Snapshot创建系统快照,即拷贝一份系统所有进程的信息到指定的结构体PROCESSENTRY32中,然后使用Process32First和Process32Next获得每一个进程的详细信息。需要注意的是编译成32位程...

weixin_34391445的博客 2285

内网渗透(二)之基础知识-工作组介绍

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都 列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1219

让 ABAP 开发者也能做出高质量 SAP Fiori:到底需要掌握多少前端知识?

文章摘要: 随着SAP技术演进,ABAP开发者的角色边界正在重构。传统SAP GUI时代的全栈开发模式逐渐转向RAP+Fiori Elements的新范式,其中关键技术变化包括: 开发模式转变:从前后端耦合转向RAP模型驱动开发,通过CDS注解实现UI意图表达 分工优化:Fiori Elements模板处理80%标准UI需求,Flexible Programming Model解决20%差异化需求 效率提升:注解驱动开发可在RAP建模阶段同步定义UI结构,大幅缩短交付周期 工具整合:SAP提供从建模到部署的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 350

VC 编写 Vista 或 win7 下需要管理员权限运行的程序

程序有 com,需要注册,但是在 win7 上面如果不是管理员权限的话,执行就会失败。 先是通过代码提升用户权限的。代码如下: BOOL UpgradeProcessPrivilege(HANDLE hProcess, LPCTSTR lpPrivilegeName ) { HANDLE hToken = NULL; if(OpenProcessToken(hProcess

蜡笔小辛的专栏 2307

ubuntu 20.04 搭建多用户远程桌面共享及同时在线使用

摘要:本文介绍了在物理机上配置远程桌面访问的完整流程。通过setup_xrdp.sh脚本自动安装xrdp服务,修改配置文件并开放3389端口。同时提供了用户管理脚本:add_rdp_users.sh用于创建带sudo权限的远程用户,del_rdp_users.sh用于删除用户及主目录。还包含批量操作脚本add_rdp_all.sh和del_rdp_all.sh,支持一次性创建/删除多个用户(如dev1-dev5),所有用户密码统一设置为111111。完整方案实现了远程桌面环境的快速部署和用户集中管理。

623

让VC程序在Win7下获得管理员权限

VC编译出来的应用程序在win7或vista下运行,有可能因为权限问题,不能成功运行。 用下面的办法,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。 1.打开应用程序的源代码工程 2.添加一个“custom”资源,"

十年磨一剑,霜刃未曾试! 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

编译完成的工程在WIN7或者VISTA下自动使用管理员权限运行

方法1 Vista/Win7使用UAC加强了权限管理,一些程序需要用户指明管理员权限才能正常运行。那么如何让一个程序默认就是以管理员方式运行呢?答案是Manifest. 步骤如下: 1. 在工程中新建一个文件,例如mani.xml。 其内容为 requireAdministrator" uiAccess="false" /> 蓝色的一

jjchao的专栏 2108

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

在WIN7或者VISTA下自动使用管理员权限运行

Vista/Win7使用UAC加强了权限管理,一些程序需要用户指明管理员权限才能正常运行。那么如何让一个程序默认就是以管理员方式运行呢?答案是Manifest.步骤如下:1. 在工程中新建一个文件,例如mani.xml。其内容为requireAdministrator" uiAccess="false" />蓝色的一行是关键的。默认是asInvoker。这里改成requireAdministrat

Augusdi的专栏 3159

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Delphi在win7/vista下写注册表等需要管理员权限的解决方案

可人家MS也知道自己家的东西烂,编了庞大的MSDN让它的程序员模仿,有如老师亲临,大大给他的用户壮了胆,也给了他们创造了更广阔的想象空间... 扯远了,大家见笑了!以上解决方法并非是非完美的,UAC的提示或多或少给用户带来了不安全的感觉,最好的方法应该由程序本身和用户交互说明需要使用管理员权限运行,或者自己你像在xp以下系统上一样,自己提高权运行权限,实现一些操作,但这样做并非现实,MS能会让它的辛苦研发出的UAC项目形同虚设?关于UAC的利弊,网络上的说法褒贬不一,在这里就不具体讨论了。

疯流人物 912

VC2005 编译Win7以管理员权限启动的可执行程序

由于在Vista、Win7系统增加了UAC功能,导致很多程序启动时需要用户以手动点击鼠标右键,选择“以管理员权限启动”来启动应用程序。     为了方便用户,VC程序员可以自己在程序中添加以管理员权限启动的功能,其实非常简单,将以下代码复制到记事本中,保存为.manifest后缀名的文件 <assemblyIdentity version="1.0.0.0" process

baggiowangyu的专栏 4306

Vista、Win7上.net程序如何自动使用管理员权限运行

原帖:http://www.cnblogs.com/likewind/archive/2010/10/20/1856604.html   最近项目需要写个小工具,工具需要操作系统目录中的文件,比如:c:\windows目录,或者修改注册表,而如果系统是win7,运行程序就会抛出目标文件拒绝访问的异常。这是在网上找到的解决办法,特此记下,说不定以后还会用到,记在cnblogs上算是最方便的了:

thebesttome的专栏 1282

VC6 编译程序在Vista/win 7上要求管理员权限[转]

<br />Vista 权限检查变得比以往的任何版本windows都严格.<br /> 有相当多程序,在winxp,win2k上顺利运行的.放到Vista上,就无法运行.其中有一类原因是因为程序使用了一些API,这些API在Vista下必须要求满足管理员权限才能够执行.<br /> 具体查新版的MSDN,会有明确的标注.同时Visual Studio 2003,以及 Visual Studio 2005都可以很方便的直接在程序的工程里头加入 manifest 资源,声明程序需要管理员权限.<br />而

lionzl的专栏 820

VC6 在Vista Win7 下提高权限问题

<br />以下程序集清单(Assembly Manifest)示例使你的程序在VISTA和WIN7下需要管理员权限,即在程序运行时弹出UAC提升权限对话框。<br /><?xml version="1.0" encoding="UTF-8" standalone="yes"?><br /><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br /><assemblyIdentity<br />    vers

lin_angle的专栏 786

VC6编辑的程序在Win7下运行时获取管理权限

VC编译出来的应用程序在vista/Win7下运行,有可能因为权限问题,不能成功运行。 用以下办法,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。 1.打开应用程序的源代码工程 2.添加一个“custom”资源,"resource type"填24,把资源ID改为1,然后把以下内容复制到资源内容中保存 version="1.0.0.0

linfei2707的专栏 930

VISTA WIN7下如何以管理员身份打开程序

<br />遇到win 7下权限限制,对c:/program files下的自己的配置文件.ini做修改时,系统会自动复制到c:/users/用户名/AppData/Local/VirtualStore/Program Files/***/***.ini下面,并做修改,然后会自动读取,但是如果以管理员身份运行则不会这样,网上找到用管理员身份打开Exe方法如下:<br /> C/C++ code VC编译出来的应用程序在vista下运行,有可能因为权限问题,不能成功运行。 用以下办法,给应用程序添加

viviansuda的专栏 1819
上一篇: 关于GetProcessHandleCount()函数
下一篇: GetProcAddress用法
nemo2011
博客等级 码龄16年 179粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值