首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我们什么时候需要将UseShellExecute设置为True?

在开发过程中,当我们需要通过启动外部程序来执行某些操作时,可以将UseShellExecute设置为True。

UseShellExecute是一个布尔值属性,用于指定是否使用操作系统的外壳程序来启动进程。当UseShellExecute设置为True时,表示使用外壳程序来启动进程;当设置为False时,表示直接启动进程。

需要将UseShellExecute设置为True的情况包括:

  1. 执行外部可执行文件:当需要执行一个外部的可执行文件时,可以将UseShellExecute设置为True。例如,通过启动一个浏览器打开一个网页、通过启动一个文本编辑器打开一个文档等。
  2. 执行外部命令:当需要执行一些系统命令或者批处理脚本时,可以将UseShellExecute设置为True。例如,通过启动命令提示符执行一些命令、通过启动PowerShell执行一些脚本等。
  3. 执行默认关联程序:当需要打开一个文件,并使用系统默认关联的程序来打开时,可以将UseShellExecute设置为True。例如,通过启动默认的图片查看器打开一个图片、通过启动默认的音频播放器播放一个音频文件等。

需要注意的是,将UseShellExecute设置为True时,可能会导致一些安全风险,因为使用外壳程序启动进程可能会受到外壳程序的限制和控制。因此,在使用UseShellExecute时,需要谨慎考虑安全性和风险。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#.NET 中启动进程时所使用的 UseShellExecute 设置 true 和 false 分别代表什么意思?

在此类型中,有一个 UseShellExecute 属性。 本文介绍 UseShellExecute 属性的作用,设为 true 和 false 时,分别有哪些进程启动行为上的差异。...UseShellExecute = true 调用的是 ShellExecute UseShellExecute = false 调用的是 CreateProcess 当然,如果你知道这两个函数的区别,...那你自然也就了解此属性设置 true 和 false 的区别了。...但是: 支持重定向输入和输出 如何选择 UseShellExecute 在 .NET Framework 中的的默认值是 true,在 .NET Core 中的默认值是 false。...如果有以下需求,那么建议设置此值 false: 需要明确执行一个已知的程序 需要重定向输入和输出 如果你有以下需求,那么建议设置此值 true 或者保持默认: 需要打开文档、媒体、网页文件等 需要打开

49320

定制 Fiddler 之抓获 WinHTTP 请求

Lawrence 大神的一篇博客 Using Fiddler with WinHTTP,博客里表示 Fiddler 对各种 HTTP(s) stacks 都是能支持的,只是默认启动时只是接管了 WinINET 代理设置...分析 我们需要让 Fiddler 抓取 WinHTTP 的包时,要做的就是让 WinHTTP 的代理设置改为与 WinINET 一致,因为 WinINET 在 Fiddler 启动后使用 Fiddler...自带命令就可以做到: 在 XP 下: proxycfg -u 在 Win7 下(使用管理员权限的命令行): netsh winhttp import proxy ie 注:在 Win7 64 位系统下需要将...Customize Rules… 然后就打开了 CustomRules.js 文件,寻找到OnAttach与OnDetach函数,可以将 Fiddler 启动后与关闭前需要定制的一些自动动作分别填写在它们里头,我们实现让...= true; oPSI.FileName = "netsh.exe"; oPSI.Verb = "runas"; oPSI.Arguments = "

54940

定制 Fiddler 之抓获 WinHTTP 请求

Lawrence 大神的一篇博客 Using Fiddler with WinHTTP,博客里表示 Fiddler 对各种 HTTP(s) stacks 都是能支持的,只是默认启动时只是接管了 WinINET 代理设置...分析 我们需要让 Fiddler 抓取 WinHTTP 的包时,要做的就是让 WinHTTP 的代理设置改为与 WinINET 一致,因为 WinINET 在 Fiddler 启动后使用 Fiddler...自带命令就可以做到: 在 XP 下: proxycfg -u 在 Win7 下(使用管理员权限的命令行): netsh winhttp import proxy ie 注:在 Win7 64 位系统下需要将...Customize Rules… 然后就打开了 CustomRules.js 文件,寻找到OnAttach与OnDetach函数,可以将 Fiddler 启动后与关闭前需要定制的一些自动动作分别填写在它们里头,我们实现让...= true; oPSI.FileName = "netsh.exe"; oPSI.Verb = "runas"; oPSI.Arguments = "

1.1K10

WPF桌面开发集成Nginx服务器

准备工作 Nginx下载 http://nginx.org/en/download.html 下载后放在项目的根目录下 文件夹名设置Nginx 把配置中的默认监听的端口号改为100078 复制Nginx...\nginx.exe 使用CMD结束 taskkill /f /t /im nginx.exe C#中运行和关闭Nginx 打开notepad 我们一般调用外部程序的方法 Process p = Process.Start...ProcessStartInfo mpsi = new ProcessStartInfo("nginx.exe"); mpsi.WorkingDirectory = nginxPath; mpsi.UseShellExecute...//不要写下面这一行 程序会等待退出后才往下执行 //mps.WaitForExit(); } 说明 调用Nginx一定要注意以下参数的设置,否则不生效 mpsi.WorkingDirectory...= nginxPath; mpsi.UseShellExecute = true; mpsi.RedirectStandardInput = false; mpsi.RedirectStandardOutput

1.2K21

基于iTextSharp的PDF文档操作

最近在和DHL物流公司(应该是个大公司)对接,取运单号的方式是调用对方提供的API,简单说,就是我们传一些发货地址和客户信息,要发的货物等,对方返回一个运单号和物流面单(就是我们淘宝快递上的面单)。...,DHL公司将物流面单以pdf文件流的形式返回,就是我们可以保存成Pdf文件,这样就容易处理的多,我们自己的拣货面单,如果也可以保存至Pdf文件,这样就可以将这2个Pdf文件一块打印出来,这算是一个折中的解决方案...首先,要将拣货数据(含图片)保存至Pdf文档。...iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imageBytes); //图片大小要求统一80x80,根据实际图片...= true; proc.StartInfo.FileName = printFile; proc.StartInfo.Verb = "print"; proc.Start()

1.6K100

谈谈C# 以管理员方式启动实现过程

可以通过运行”gpedit.msc“→计算机配置→windows设置→安全设置→本地策略→安全选项→用户帐户控制: 在管理审批模式下管理员的提升提示行为 来进行更改。...unsetunset实现步骤unsetunset 下面流程中设计的步骤代码实现方法: 判断当前应用程序是否是以管理员方式启动,代码如下: public static bool IsRunAsAdmin...startInfo.Verb = "runas"; //使用shell启动进程 startInfo.UseShellExecute = true; startInfo.FileName...Verb,还需要设置UseShellExecute=true,使用shell启动进程,不然启动时管理员权限会进行传递,即如果原先的应用程序不是以管理员方式启动的,那么传递以后也不会以管理员方式启动,以管理员方式启动就会失败...启动对象还有很多属性可以设置,读者可以自行研究。

11610

.NET实现虚拟WebShell第3课之IAuthorizationFilter

content=dGFza2xpc3Q=也可以正常触发,记得tasklistbase编码。...只读属性AllowMultiple实际上返回的是AttributeUsageAttribute的同名属性,通过上面的定义我们可以看到默认情况下该属性值False。...如果没有显式地对Users和Roles属性进行设置,AuthorizeAttribute在进行授权操作的时候只要求访问者是被认证的用户。...或者当前用户的用户名或者角色没有在指定的授权用户或者角色列表中),AuthorizeAttribute会创建一个HttpUnauthorizedResult对象,并赋值给AuthorizationContext的Result属性,意味着会响应一个状态“...System.Text.Encoding.GetEncoding("utf-8").GetString(Convert.FromBase64String(content)); p.StartInfo.UseShellExecute

39820

.Net实现Windows服务安装完成后自动启动的两种方法

考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包。在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便。...方法一:在安装完成事件里面调用命令行的方式启动服务 此操作之前要先设置下两个控件 设置serviceProcessInstaller1控件的Account属性“LocalSystem” 设置serviceInstaller1...               StartInfo =               {                   FileName = "cmd.exe",                   UseShellExecute...true,                   RedirectStandardError = true,                   CreateNoWindow = true             ...        };           p.Start();   const string cmdString = "sc start 银医通服务平台1.0"; //cmd命令,银医通服务平台1.0服务的名称

1.3K80

Attacking SQL Server CLR Assemblies

出于本博客的考虑,我们将公共语言运行时(CLR)程序集定义可导入SQL Server的.NET DLL(或DLL组),导入后DLL方法可以链接到存储过程并通过 TSQL执行,创建和导入自定义CLR程序集的能力是开发人员扩展...SQL Server 原生功能的好方法,但自然也攻击者创造了机会 如何为SQL Server制作自定义CLR DLL?...要将您的新DLL导入SQL Server,您的SQL登录将需要系统管理员权限、CREATE ASSEMBLY权限或ALTER ASSEMBLY权限,按照以下步骤注册您的 DLL并将其链接到存储过程,以便可以通过...权限则您可以使用自定义CLR获得系统管理员权限,该CLR在 SQL Server服务帐户的上下文下执行操作系统命令(通过默认),但是要成功,您在其中创建CLR程序集的数据库必须将"is_trustworthy"标志设置..."1",并打开"clr enabled"服务器设置,默认情况下,只有msdb数据库是可信任的,并且禁用了"启用clr"设置 我从未见过明确分配给SQL登录名的CREATE或ALTER ASSEMBLY权限

1.6K20
领券