SHELLEXECUTEINFO「建议收藏」

SHELLEXECUTEINFO「建议收藏」SHELLEXECUTEINFO是WindowsAPIShellExecuteEx的参数,这个是一个结构体类型,里面可以添加参数,当IpVerb成员为"runas"的时候可

大家好,又见面了,我是你们的朋友全栈君。

SHELLEXECUTEINFO 是Windows API ShellExecuteEx的参数,这个是一个结构体类型,里面可以添加参数,当IpVerb成员为 “runas”的时候可以提升启动进程的权限,如果不设置,会继承父进程的权限,ShellExecuteEx

 

std::string strOpEXEPath = _strOpEXEPath;

 

SHELLEXECUTEINFO sei = { 0 };

DWORD ExitCode = 0;

 

// Initialize for ShellExecuteEx

sei.cbSize = sizeof(SHELLEXECUTEINFO);

sei.fMask = SEE_MASK_NOCLOSEPROCESS;

sei.lpVerb = "runas";

sei.lpFile = strOpEXEPath.c_str();

sei.lpParameters = strConfigINIFile2.c_str();

sei.lpDirectory = NULL;

sei.nShow = SW_HIDE;

 

BOOL hr = ::ShellExecuteEx(&sei);

 

if ((LONG)sei.hInstApp > 32)

{

DWORD ResultWait = WaitForSingleObject(sei.hProcess, INFINITE);

if (ResultWait == WAIT_TIMEOUT)

{

TerminateProcess(sei.hProcess, 0);

}

 

GetExitCodeProcess(sei.hProcess, &ExitCode);

CloseHandle(sei.hProcess);

}

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155025.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库查询常用语句语法

    数据库查询常用语句语法selectxxfrom表格where内容=””检查一个项目是否在列表中可以用in列表,用(‘’,’’,’‘)单引号分隔开名字不在里面namenotin(‘’,‘‘,‘‘)名字在里面namein(‘’,‘‘,‘‘)andorname=’Argentina’orname=’Australia’等同于nameinIN(‘Argentina’,’Australia’)betweenxxandyy…

    2022年4月30日
    39
  • SpringBoot报错ERROR org.springframework.boot.SpringApplication – Application run failed[通俗易懂]

    SpringBoot报错ERROR org.springframework.boot.SpringApplication – Application run failed[通俗易懂]有时候启动springboot会成功,有时候会报下面的错误10:27:27.556[main]ERRORorg.springframework.boot.SpringApplication-Applicationrunfailedorg.yaml.snakeyaml.error.YAMLException:java.nio.charset.MalformedInputException:Inputlength=1 atorg.yaml.snakeyaml.reader.Str

    2025年10月11日
    4
  • c语言基础题库及详解答案_char和uint8

    c语言基础题库及详解答案_char和uint8uint32_t是一个32位的无符号整型。使用这个类型需要加上头文件#include<stdint.h>unsignedint32_t是错误的写法。%x是以16进制的形式来输出例子:我有一个32位的无符号整型的数,我想知道高16位和低16位相加的和是多少,结果以16进制输出?#include<stdio.h>#include<stdlib.h>#include<stdint.h>intmain(){uint3

    2025年8月27日
    6
  • 报错415怎么解决_服务器请求415

    报错415怎么解决_服务器请求415415错误

    2025年6月19日
    2
  • java 动态库卸载_java 卸载动态链接库

    java 动态库卸载_java 卸载动态链接库importjava.lang.reflect.Field;importjava.lang.reflect.Method;importjava.util.Iterator;importjava.util.Vector;publicclassFreeDynamicDll{static{//首先确保这些dll文件存在System.load(“c:/test/Decode.dll”);…

    2022年5月12日
    45
  • java分布式学习路线

    java分布式学习路线先理解为什么需要分布式,因为服务器处理的能力需要提升,这里有两个方面,第一是纵向也就是增加cpu的能力,或者加内存;另一个方向就是横向,就是分布式。将本来一台计算机的压力分给多太计算机,从而可以平均分布io,同时提升响应速度。建议先从分布式数据库看起,之后你可以用虚拟机,和本机进行测试分布式数据库。之后你可以使用java操作这种分布式数据库。从而依旧用虚拟机练习web项目…

    2022年6月6日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号