首页
学习
活动
专区
圈层
工具
发布

WinExec、ShellExecute和CreateProcess

CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。   ...uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。   ...例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。   ...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。   ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入 STARTUPINFO结构,但无论如何必须提供它。

1.4K20

ShellExecute, WinExec, CreateProcess区别

例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。   ...值:CREATE_NEW_CONSOLE   含义:新的进程将使用一个新的控制台,而不是继承父进程的控制台。这个标志不能与DETACHED_PROCESS标志一起使用。   ...与其使用应用程序提供的环境块,不如直接把这个参数设为空,系统驱动器上的当前目录信息不会被自动传递给新创建的进程。对于这个情况的探讨和如何处理,请参见注释一节。   ...如果这个参数为空,新进程将使用与调用进程相同的驱动器和目录。这个选项是一个需要启动启动应用程序并指定它们的驱动器和工作目录的外壳程序的主要条件。   ...lpStartupInfo:指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结构体。

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

    WinExec, ShellExecute, CreateProcess

    uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。   ...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。   ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。   ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它 参数则对各种应用程序有用。大多数情况下,并不一定要填入 STARTUPINFO结构, 但无论如何必须提供它。

    1.8K20

    关于WinExec和System的比较

    uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。   ...此窗口接收应用程序产生的任何信息框。   lpOperation:一个空结束的字符串地址,此字符串指定要执行的操作。...⑷ 程序示例   下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。   ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。

    1.4K20

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

    本章介绍了3种常用的病毒木马启动技术,它包括: q 创建进程API:介绍使用WinExec、ShellExecute以及CreateProcess创建进程。...接下来,本节将介绍使用WinExec、ShellExecute以及CreateProcess函数创建进程。 4.1.1 函数介绍 1.WinExec函数 运行指定的应用程序。...如果在lpFile中提供了相对路径,请不要对lpDirectory使用相对路径。 nShowCmd [in] 指定应用程序在打开时如何显示标志。...dwCreationFlags [in] 控制优先级和创建进程的标志。例如,CREATE_NEW_CONSOLE表示新进程将使用一个新控制台,而不是继承父进程的控制台。...在Windows XP、Windows Server 2003,以及更老版本的Windows操作系统中,服务和应用程序使用相同的会话(SESSION)来运行,而这个会话是由第一个登录到控制台的用户来启动的

    4.8K50

    进程的创建与使用(win32-API)

    CreateProcess(NULL, // 没有启动应用程序的路径,使用命令行 "notepad.exe", // 要启动的应用程序名...常见的标志包括: CREATE_NEW_CONSOLE: 如果创建的进程是一个控制台应用程序,那么即使它的父进程不是控制台应用程序,也会给它分配一个新的控制台窗口。...CREATE_NO_WINDOW: 如果创建的是控制台应用程序,则不显示其窗口。 DETACHED_PROCESS: 创建一个与父进程完全分离的进程。...lpStartupInfo: LPSTARTUPINFO类型,指向一个STARTUPINFO结构体,它包含了有关如何创建新进程的信息,如控制台窗口大小、位置、标题等。...我当前采用的版本是VS2020。 下面是一个具体的示例代码,演示了如何使用CreateProcess函数来启动FFmpeg并进行视频转换。在这个例子中,把一个MP4格式的视频转换成AVI格式。

    46110

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

    以默认方式运行   —-SW_SHOWMAXIMIZED 激活窗口并最大化   —-SW_SHOWMINIMIZED 激活窗口并最小化   —-SW_SHOWMINNOACTIVE 最小化但不改变当前激活的窗口...例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。   ...使用户点击URL链接以后,启动浏览器访问Web页面,这种对话框中的热链接使应用程序增色不少。...ShellExecute解析系统注册表HKEY_CLASSES_ROOT中所有的内容,判断启动那一个执行程序,并且启动一个新的实例或使用DDE将文件名连到一打开的实例。...三个SDK函数 winexec, shellexecute,createprocess可以使用。

    2.9K20

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

    ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。     ...uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。   ...程序示例   下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。下面程序使用WinExec,并明确指定使用记事本程序。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。   ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。

    5K90

    ShellExecute使用详解

    1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。...例如,可以将其设置为应用程序主窗口 句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。   ...请用下述任何一个常数: SW_HIDE 隐藏窗口,活动状态给令一个窗口 SW_MINIMIZE 最小化窗口,活动状态给令一个窗口 SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态...SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态 SW_SHOWMAXIMIZED 最大化窗口,并将其激活 SW_SHOWMINIMIZED 最小化窗口,并将其激活 SW_SHOWMINNOACTIVE...最小化一个窗口,同时不改变活动窗口 SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口 SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口 SW_SHOWNORMAL

    1.9K10

    「Spring和Kafka」如何在您的Spring启动应用程序中使用Kafka

    根据我的经验,我在这里提供了一个循序渐进的指南,介绍如何在Spring启动应用程序中包含Apache Kafka,以便您也可以开始利用它的优点。...先决条件 本文要求您拥有Confluent平台 手动安装使用ZIP和TAR档案 下载 解压缩它 按照逐步说明,您将在本地环境中启动和运行Kafka 我建议在您的开发中使用Confluent CLI来启动和运行...我们需要以某种方式配置我们的Kafka生产者和消费者,使他们能够发布和从主题读取消息。我们可以使用任意一个应用程序,而不是创建一个Java类,并用@Configuration注释标记它。...为了完整地显示我们创建的所有内容是如何工作的,我们需要创建一个具有单个端点的控制器。消息将被发布到这个端点,然后由我们的生产者进行处理。 然后,我们的使用者将以登录到控制台的方式捕获和处理它。...如果您遵循了这个指南,您现在就知道如何将Kafka集成到您的Spring Boot项目中,并且您已经准备好使用这个超级工具了! 谢谢大家关注,转发,点赞和点在看。

    2.2K30

    windows 多任务与进程

    写过控制台与窗口程序的人都知道,控制台的主函数是main,而窗口应用的主函数是WinMain,那么是否可以根据这个来判断程序属于那种呢,很遗憾,windows并不是根据这个来区分的。...在VS编译器上可以通过设置将Win32 控制台程序的主函数指定为WinMain,或者将窗口程序的主函数指定为main,设置方法:属性–>连接器–>系统–>子系统,将这项设置为/SUBSYSTEM:CONSOLE...1. pszImageName:表示进程对应的exe文件所在的完整路径或者相对路径 2. pszCmdLine:启动进程传入的命令行参数,这是一个字符串类型,需要注意的是,这个命令行参数可以带程序所在的完整路径...WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); //启动控制台窗口...,在创建时没有给出特别的创建标志,窗口本身就是一个个独立的,并且我们通过指定si的部分成员指定了窗口的显示位置,而对于控制台,如果在创建时不特别指定创建的标志,那么它将与父进程共享一个输入输出控制台。

    1.4K40

    Createprocess控制台程序输出重定向

    然而令人失望的是,我们每次加载这些控制台应用程序时,图形程序总会在加载的过程中产生一个不受欢迎的控制台窗口,从而使我们图形用户界面显得不伦不类,当用户看到这个界面时,尤其看到我们加载的是别人编写的或者是操作系统提供的控制台应用程序...,而 system函数的缺点是会导致一个控制台窗口出现,如果计算机配置是一个全屏命令提示行模式,它就会把你的GUI程序直接切换到全屏控制台窗口,显然这是一个很不体面的解决方案。...通过这个函数我们可以实现创建一个进程,能够隐藏控制台窗口,并把控制台窗口的输出结果定向输出到一个文本文件。...在Windows 2000环境下,CreateProcess函数提供了一个名叫CREATE_NO_WINDOW的标志,这个标志能够成功阻止控制台窗口出现,然而在 Windows 98环境下,这个标志不被支持...为了实现两种环境下隐藏控制台窗口,我们可以通过设置STARTINFO结构成员并把它传递给CreateProcess 函数来达到这个目的。

    72820

    7.2 通过API创建新进程

    使用WinExec()函数,可以传递一个字符串类型的参数,该参数中指定了要启动的进程名和参数等信息。...ShellExecute()函数的优点是可以控制进程的启动方式、传递命令参数,并对返回值进行判断,通过传递参数来控制启动进程的方式,比如最大化或最小化窗口,或者在后台启动进程。...lpFile:需要执行的目标文件、应用程序或者URL地址。lpParameters:命令行参数。lpDirectory:指定被启动程序的执行路径,如果为NULL,则使用当前程序路径。...nShowCmd:指定被启动程序的窗口状态。...同时CreateProcess()也具有更高的系统安全性。因此,在实际开发中,开发人员往往使用 CreateProcess()函数进行进程控制、管理和处理。

    53040

    7.2 通过API创建新进程

    :指定程序窗口最初显示方式,如SW_SHOW,即窗口正常大小和位置显示 WinExec 函数的返回值是一个无符号整数,它表示进程是否成功启动。...ShellExecute()函数的优点是可以控制进程的启动方式、传递命令参数,并对返回值进行判断,通过传递参数来控制启动进程的方式,比如最大化或最小化窗口,或者在后台启动进程。...lpFile:需要执行的目标文件、应用程序或者URL地址。 lpParameters:命令行参数。 lpDirectory:指定被启动程序的执行路径,如果为NULL,则使用当前程序路径。...nShowCmd:指定被启动程序的窗口状态。...同时CreateProcess()也具有更高的系统安全性。因此,在实际开发中,开发人员往往使用 CreateProcess()函数进行进程控制、管理和处理。

    44520

    「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka

    根据我的经验,我在这里提供了一个循序渐进的指南,介绍如何在Spring启动应用程序中包含Apache Kafka,以便您也可以开始利用它的优点。...先决条件 本文要求您拥有Confluent平台 手动安装使用ZIP和TAR档案 下载 解压缩它 按照逐步说明,您将在本地环境中启动和运行Kafka 我建议在您的开发中使用Confluent CLI来启动和运行...你会从这本指南中得到什么 阅读完本指南后,您将拥有一个Spring Boot应用程序,其中包含一个Kafka生成器,用于向您的Kafka主题发布消息,以及一个Kafka使用者,用于读取这些消息。...为了完整地显示我们创建的所有内容是如何工作的,我们需要创建一个具有单个端点的控制器。消息将被发布到这个端点,然后由我们的生产者进行处理。 然后,我们的使用者将以登录到控制台的方式捕获和处理它。...如果您遵循了这个指南,您现在就知道如何将Kafka集成到您的Spring Boot项目中,并且您已经准备好使用这个超级工具了!

    1.3K40

    exit是什么意思(TerminateProcess)

    每个应用程序都有个主函数,在WINDOWS下,只支持两种类型的应用程序——CUI(控制台应用程序)和GUI(图形界面应用程序),相应的,其主函数类型不同。...,后两个为CUI的入口函数;事实上,在一个进程开始运行时,WINDOWS OS并不直接从主函数开始执行,而是从另外 一个比较大的运行期启动函数开始执行,不同的入口函数对应的启动函数不同: 应用程序类型...下面来看下如下很简单的示例程序: // exitprocess_text.cpp : 定义控制台应用程序的入口点。...在VC中如何结束系统正在运行的其他进程(该进程必须有窗口界面),其实很简单,按照如下步骤进程:1)取得进程的句柄(利用FindWindow函数得到);2)获取进程ID号(用GetWindowThreadProcessId...CreateProcess函数就可完成,需要注意的是这个函数的几个输入参数,第一个参数是 //启动新进程 int CStaticFunc::CreateNewProcess(LPCSTR pszExeName

    80720

    第二章--Win32程序运行原理 (部分概念及代码讲解)

    使用内核交互对象是应用程序和系统内核进行交互的重要方式之一。 7.  ...如果创建的是控制台应用程序,此入口函数就是main。     PS:int main(int argc,char *argv[]); 16.  ...Win32程序的启动过程就是进程的创建过程,操作系统通过调用CreateProcess函数(代码解释中将会有对该函数的具体解释)来创建新的进程的。...系统在创建新的进程时会为新进程指定一个STARTUPINFO类型的变量,这个结构包含了父进程传递给子进程的一些显示信息。(对图形界面应用程序来说,这些信息会影响新的进程中主线程的主窗口的显示等。)..., // 为新进程创建一个新的控制台窗口 21 NULL, // 使用本进程的环境变量 22 NULL, // 使用本进程的驱动器和目录

    27810
    领券