首页 > 系统相关 >C# 启动UseShellExecute属性设置

C# 启动UseShellExecute属性设置

时间:2023-04-25 11:22:55浏览次数:87  
标签:UseShellExecute 启动 C# CreateProcess 设置 ShellExecute 属性

一个小小的细节难以不会改变大局,但多个细节可能会影响成败。

在C#中使用Process启动时,ProcessStartInfo参数的UseShellExecute属性可设置为true和false,两者有什么区别,该如何使用?

Process.Start 本质上是启动一个新的子进程,当设置为true时,调用ShellExecute方法,设置为false时,调用CreateProcess方法。

ShellExecute 可打开任何文件

ShellExecute方法可打开程序或者文件或者其他任何能够打开的内容,常见的包括:

(1)可执行程序:如exe

(2)网址:任何http地址;

(3)文件:一个 html 、 mp4、 jpg、 docx 等各种文件;

(4)环境变化中程序:在 PATH 环境变量中的各种程序

但是,它也有自己的局限:

(1)不支持重定向输入和输出;

(2)最终启动的进程不确定,可能潜在的安全风险。

CreateProcess 可实现重定向

CreateProcess精确查找路径来执行,只支持各种非可执行程序的打开。但支持重定向输入和输出。

标签:UseShellExecute,启动,C#,CreateProcess,设置,ShellExecute,属性
From: https://www.cnblogs.com/liweis/p/17352086.html

相关文章

  • conda命令大全
    Anaconda毋庸置疑是利用Python进行科学计算最好的开源平台。这里整理一下Conda常用的命令。管理Conda检查conda版本conda--version升级当前版本condacondaupdateconda管理(虚拟)环境#创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自......
  • Linux安装Tomcat
    1.通过远程链接软件连接上我们的linux服务器,下载linux版本的jdk和tomcat压缩包并上传到我们的服务器中,如下:2.分别进行解压缩:tar-zxv-fjdk-8u371-linux-x64.tar.gz回车tar-zxv-fapache-tomcat-8.5.49.tar.gz回车3.启动防火墙systemctlstartfirewalld,查看防火墙......
  • SpringBoot监控Actuator,关闭redis监测
    当我们导入了spring-boot-starter-actuator这个依赖后,SpringBoot会默认去监测一些信息。其中就包括redis、会根据redis的默认初始配置,localhost:6379尝试连接redis。如果我们没有用到redis,启动就会报错<dependency><groupId>org.springframework.boot</groupId>......
  • Sitecore10 Demo演示环境Azure一键部署(Step By Step Guide to installing Sitecore10
    本文演示SitecoreXPSingle(XP0)在Azure上的一键部署,即“30分钟生成Sitecore演示环境”的一环。关于XP(即SitecoreExperiencePlatform)roles的相关介绍移步XPSingle配置主要用来开发和测试:FourSitecoreroles:ContentDelivery,ContentManagement,Processing,andRepo......
  • Effective C++总结
    1.视C++为一个语言联邦c++是C、面向对象C++、泛型编程、以及stl的集合。2.尽量以const\enum\inline替换#define3.尽可能使用const4.确定对象使用前已经被初始化5.了解C++默认生成并调用哪些函数7.为多态基类声明virtual析构函数8.别让异常逃离析构函数9.绝不在构造和析构过程中调......
  • 自学C#,要懂得善用MSDN
    很多初学者学习编程,都会通过看别人写的教程、或者录制的视频,来学习。这是一个非常好的途径,因为这个是非常高效的。但是这样,存在两个问题:1、教程不够全面:任何再好的教程,都无法囊括所有的知识点,更多是讲解部分精髓而已;2、无法掌握学习方法:很多教程都是教你如何使用,但是没有教你......
  • Vulnhub之Hacksudo Search靶机详细测试过程(不同提权方法)
    HacksudoSearch识别目标主机IP地址(kali㉿kali)-[~/Desktop/Vulnhub/HacksudoSearch]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56.0/24|ScreenView:UniqueHosts......
  • C代码之GPIO
    ***@fnintgpio_is_exported(size_tgpio)*@briefTestgpioisexportedornot*@paramsize_tgpio:Thenumberofgpio*@param*@returnIsexported:(0);Isnotexported:(-1)*/intgpio_is_exported(size_tgpio){ intfd=0; charbuf[64]......
  • 在JavaScript的if判断中,关于数组Array的相关思考
    结论:在if判断中,无法直接使用Array转Boolean的方法判断数组是否为空数组letarray=[];//中间进行N步操作之后//...if(array){ console.log("数组为空数组");}if(array==[]){ console.log("数组为空数组");}if(array==0){ console.log("数组为空数组");}if(array......
  • Java的多线程编程模型5--Java中的CAS理论
    CAS,compareandswap的缩写,中文翻译成比较并交换。我们都知道,在java语言之前,并发就已经广泛存在并在服务器领域得到了大量的应用。所以硬件厂商老早就在芯片中加入了大量直至并发操作的原语,从而在硬件层面提升效率。在intel的CPU中,使用cmpxchg指令。在Java发展初期,java语言是不能......