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

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

本文介绍 UseShellExecute 属性作用,设为 true 和 false 时,分别有哪些进程启动行为上差异。...---- 本质差异 Process.Start 本质上是启动一个新进程,不过这个属性不同,使得启动进程时候会调用不同 Windows 函数。...UseShellExecute = true 调用ShellExecute UseShellExecute = false 调用是 CreateProcess 当然,如果你知道这两个函数区别,...那你自然也就了解此属性设置 true 和 false 区别了。...如果有以下需求,那么建议设置此值 false: 需要明确执行一个已知程序 需要重定向输入和输出 如果你有以下需求,那么建议设置此值 true 或者保持默认: 需要打开文档、媒体、网页文件等 需要打开

54220

7.2 通过API创建新进程

如果需要创建简单进程或从其他程序启动进程,可以使用WinExec()或ShellExecute()函数。...使用WinExec()函数,可以传递一个字符串类型参数,该参数中指定了要启动进程名和参数等信息。...但是,由于WinExec()函数没有提供区分进程启动成功和失败返回值,且无法从函数返回进程句柄获得与进程相关信息,因此使用较为有限。...ShellExecute()函数优点是可以控制进程启动方式、传递命令参数,并对返回值进行判断,通过传递参数来控制启动进程方式,比如最大化或最小化窗口,或者在后台启动进程。...lpFile:需要执行目标文件、应用程序或者URL地址。lpParameters:命令行参数。lpDirectory:指定被启动程序执行路径,如果NULL,则使用当前程序路径。

18140
您找到你想要的搜索结果了吗?
是的
没有找到

7.2 通过API创建新进程

如果需要创建简单进程或从其他程序启动进程,可以使用WinExec()或ShellExecute()函数。...使用WinExec()函数,可以传递一个字符串类型参数,该参数中指定了要启动进程名和参数等信息。...但是,由于WinExec()函数没有提供区分进程启动成功和失败返回值,且无法从函数返回进程句柄获得与进程相关信息,因此使用较为有限。...ShellExecute()函数优点是可以控制进程启动方式、传递命令参数,并对返回值进行判断,通过传递参数来控制启动进程方式,比如最大化或最小化窗口,或者在后台启动进程。...lpFile:需要执行目标文件、应用程序或者URL地址。 lpParameters:命令行参数。 lpDirectory:指定被启动程序执行路径,如果NULL,则使用当前程序路径。

15220

wine怎么打开exe_exe是什么格式文件

例如,可以将其设置应用程序主窗口句柄,即Application.Handle,也可以将其设置桌面窗口句柄(用GetDesktopWindow函数获得)。   ...第一次运行程序 时应该使用这个值   若ShellExecute函数调用成功,则返回值被执行程序实例句柄。若返回值小于32,则表示出现错误。   ...参数设置“mailto:”协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook(也包括Microsoft Outlook Express)或Netscape Messanger...使用户点击URL链接以后,启动浏览器访问Web页面,这种对话框中热链接使应用程序增色不少。...ShellExecute解析系统注册表HKEY_CLASSES_ROOT中所有的内容,判断启动那一个执行程序,并且启动一个新实例或使用DDE将文件名连到一打开实例。

2.1K20

Windows黑客编程技术详解 --第四章 木马启动技术(内含赠书福利)

本章介绍了3种常用病毒木马启动技术,它包括: q 创建进程API:介绍使用WinExec、ShellExecute以及CreateProcess创建进程。...要运行批处理文件,必须启动命令解释程序,并将lpApplicationName设置cmd.exe。 lpCommandLine [in, out, optional] 要执行命令行。...如果lpThreadAttributesNULL,则不能继承句柄。 bInheritHandles [in] 如果此参数TRUE,则调用进程每个可继承句柄都将由新进程来继承。...对WinExec和ShellExecute函数设置SW_HIDE方式可隐藏运行程序窗口,并且成功隐藏执行CMD命令行窗口,对于其他程序窗口不能成功隐藏。...如果该值TRUE,则该进程将继承当前进程环境;如果此值FALSE,则该进程不会继承当前进程环境。 返回值 如果函数成功,则函数将返回TRUE;如果函数失败,则返回FALSE。

3.6K50

windows文件在另一程序打开_windows程序设计第7版

均已打开 记事本(notepad)例 注意:打开其他程序时有的方法不可行,可都使用一遍进行测试 1、创建一个新线程打开应用 PROCESS_INFORMATION processInfo; char...,比如打印不可打印文件等 SE_ERR_OOM 内存不足,无法完成操作 SE_ERR_PNF 未找到指定路径 SE_ERR_SHARE 发生共享冲突 打开网页 假设将FileName參数设置http...若用户机器中安装了多个浏览器,则该函数将依据Windows 9x/NT注冊表中http协议处理程序(Protocols Handler)设置确定启动哪个浏览器。...发送EMAIL 假设将FileName參数设置mailto:协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook(也包含Microsoft Outlook Express)...若用户机器中安装了多个邮件客户程序,则该函数将依据Windows 9x/NT注冊表中mailto协议处理程序设置确定启动哪个邮件客户程序。mailto:用户账号@邮件server地址?

65110

ShellExecute, WinExec, CreateProcess区别

●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口初始显示方式,否则此参数应设置0。   若ShellExecute函数调用成功,则返回值被执行程序实例句柄。...如果将FileName参数设置“mailto:”协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook(也包括Microsoft Outlook Express)或Netscape...值:CREATE_UNICODE_ENVIRONMENT   含义:如果被设置,由lpEnvironment参数指定环境块使用Unicode字符,如果空,环境块使用ANSI字符。   ...如果这个参数空,新进程使用与调用进程相同驱动器和目录。这个选项是一个需要启动启动应用程序并指定它们驱动器和工作目录外壳程序主要条件。   ...*主线程线程对象被设置标志状态,供其他等待这个对象线程使用。   *进程对象被设置标志状态,供其他等待这个对象线程使用

84720

WinExec, ShellExecute, CreateProcess

ShellExecute 可以指定工作目录,并且还可以寻找文件关联直接打开不用加载与文件关联应用程序,ShellExecute还可以打开网页,启动相应邮件关联发送邮件等等。...简单地传送作为第一个参数命令行,还需要决定如何显示程序(该程序也许会忽视它)第二个参数。通常,将其设置SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。...有时,不想设置任何信息,也必须传递一个有效指针给空结构(确定设置大小到cb,及设置dwFlags成员0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。...ShellExecute 可以指定工作目录,并且还可以寻找文件关联直接打开不用加载与文件关联应用程序,ShellExecute还可以打开网页,启动相应邮件关联发送邮件等等。...有时,不想设置任何信息,也必须传递 一个有效指针给空结 构(确定设置大小到cb,及设置dwFlags成员0)。

1.3K20

WinExec, ShellExecute,CreateProcess 区别

ShellExecute 可以指定工作目录,并且还可以寻找文件关联直接打开不用加载与文件关联应用程序,ShellExecute还可以打开网页,启动相应邮件关联发送邮件等等。...如果我们要得到足够多关于新进程信息,控制新进 程细节属性,若要达到这些目的,就需要使用CreateProcess函数了。 具体用法如下。...,如果NULL则使用默认安全属性 LPSECURITY_ATTRIBUTES lpProcessAttributes, //process security attributes LPSECURITY_ATTRIBUTES...LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程设置各种属性 LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息...); 使用方法如下: PROCESS_INFORMATION pi; //启动窗口信息 STARTUPINFO si; //进程信息 memset(&si,0,sizeof(si)); si.cb

1.2K40

WinExec、ShellExecute和CreateProcess

例如,可以将其设置应用程序主窗口句柄,即Application.Handle,也可以将其设置桌面窗口句柄(用GetDesktopWindow函数获得)。   ...FileName参数设置“mailto:”协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook(也包括Microsoft Outlook Express)或Netscape...若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 9x/NT注册表中mailto协议处理程序设置确定启动哪个邮件客户程序。   ...有时,不想设置任何信息,也必须传递 一个有效指针给空结构(确定设置大小到cb,及设置dwFlags成员0)。参数lpProcessInformation返回进程和线程句柄,还包 括进程和线程ID。...可以将ID发送到 其它进程,或使用句柄来控制新进程。   ShellExecute和WinExec命令用于简单作业。如果要完全控制一个新进程,就必须调用CreateProcess。

91020

关于WinExec和System比较

简单地传送作为第一个参数命令行,还需要决定如何显示程序(该程序也许会忽视它)第二个参数。通常,将其设置SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。...下面程序有控制台程序示例,其使用两种不同方法,打开文本文件。下面程序使用WinExec,并明确指定使用记事本程序。然后,使用ShellExecute,打开文本文件。   ...⑶ 返回值:   若函数调用成功,则返回值不为0;若函数调用失败,返回值0。   ShellExecute和WinExec命令用于简单作业。...有时,不想设置任何信息,也必须传递一个有效指针给空结构(确定设置大小到cb,及设置dwFlags成员0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。...可以将ID发送到其它进程,或使用句柄来控制新进程

95120

实战 | 进程启动技术思路和研究

常规api创建进程 通过常用api来创建进程是常规启动进程方式,最常用几个api有WinExec、ShellExecute、CreateProcess,我们一个一个来看一下 WinExec 首先是...,//进程创建一个新控制台窗口 NULL,//使用进程环境变量 NULL,//使用进程驱动器和目录 &si, &pi); if...(); return 0; 这里着重说一下CreateProcess实现过程 在Windows中,进程活动,只是作为线程容器,现代操作系统将线程作为最小调度单位,进程作为资源分配最小单位...); 第二阶段:创建内核中进程对象 实际上就是创建以EPROCESS核心相关数据结构,这就是系统调用NtCreateProcess()要做事情,主要包括:   ①分配并设置EPROCESS数据结构...;   ②其他相关数据结构设置,如句柄表等等;   ③目标进程创建初始地址空间;   ④对EPROCESS进行初始化;   ⑤将系统Dll映射到目标用户空间,如ntdll.dll等   ⑥设置目标进程

99250

vc++ 在程序中运行另一个程序方法

ShellExecute 可以指定工作目录,并且还可以寻找文件关联直接打开不用加载与文件关联应用程序,ShellExecute还可以打开网页,启动相应邮件关联发送邮件等等。     ...如果我们要得到足够多关于新进程信息,控制新进程细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。...简单地传送作为第一个参数命令行,还需要决定如何显示程序(该程序也许会忽视它)第二个参数。通常,将其设置SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。..., //执行程序名       LPTSTR lpCommandLine,  // 参数行       //下面两个参数描述了所创建进程和线程安全属性,如果NULL则使用默认安全属性       ...有时,不想设置任何信息,也必须传递一个有效指针给空结构(确定设置大小到cb,及设置dwFlags成员0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。

3.7K90

鱼叉攻击-炮轰马制作

0x01 木马思路 将样本自身图标伪装成图片或文档,运行样本之后释放资源中相应DOC文档以及加载器并设置隐藏文件属性,然后创建进程远程请求域前置服务端解密shellcode并加载到内存中运行...这样该文件就不能在目录中被发现,但是仍然存在可以访问 attrib C:\Users\ThinkPad\AppData\Local\Temp\jqR78D62.exe +s +h 三、创建进程 使用...,//指定当前进程内句柄不可以被子进程继承 CREATE_NEW_CONSOLE,//进程创建一个新控制台窗口 NULL,//使用进程环境变量...NULL,//使用进程驱动器和目录 &si, &pi); 最后打开诱饵文件,此时cobalt strike已经成功上线。...然后尝试删除包含文件夹(此处c:\ myfolder),只有当它为空时才起作用,最后将其自身删除。 效果演示 ?

84420

内网渗透测试:利用DCOM进行横向渗透

组件对象不使用方法而用接口来描述自身。接口被定义“在对象上实现一组语义上相关功能”,其实质是一组函数指针表,每个指针必须初始化指向某个具体函数体,一个组件对象实现接口数量没有限制。...使用DCOM进行横向移动优势之一在于,在远程主机上执行进程将会是托管COM服务器端软件。...F6A8-11CF-A442-00A0C90A8F39',"192.168.52.138")) # 然后执行如下命令,我们就可以调用该对象"ShellExecute"方法在远程主机上启动进程: 完整命令..."方法在远程主机上启动进程:$com.Document.Application.shellExecute("C:\shell.exe")# 完整命令:[activator]::CreateInstance...:GetTypeFromProgID("Visio.Application","192.168.52.138"))# 然后执行如下命令,我们就可以调用该对象"shellExecute"方法在远程主机上启动进程

2.5K20

横向移动--使用CLSID调用COM对象进行横向

然后我们还应该思考一个问题:为什么在如此多COM程序中,MMC20.APPLICATION能成为一个利用点?也就是说成为一个利用点要素是什么? 远程链接 可控性 ........每当应用程序创建COM组件实例时,都会查询注册表以将组件CLSID或ProgID解析包含它服务器DLL或EXE路径名。...确定组件服务器后,Windows会将服务器加载到客户端应用程序进程空间中(进程内组件),或者在自己进程空间中启动服务器(本地和远程服务器)。...设置了“启动许可”对象将如下所示,其中数据代表二进制格式对象ACL: ? 没有明确设置LaunchPermission用户将没有该特定注册表项。...与大多数其他方法不同,ShellWindows不会创建进程。相反,它会激活现有explorer.exe进程内部类实例,该进程执行子进程

4.9K30
领券