使用CreateProcess()函数

以下是一个使用CreateProcess()函数的例子:

void CreateChildProcessAndWaitUntilDone(const AnsiString& strCmdLine)
{
PROCESS_INFORMATION piProcInfo;
STARTUPINFO siStartInfo;
// Set up members of STARTUPINFO structure.
siStartInfo.cb = sizeof(STARTUPINFO);
siStartInfo.lpReserved = NULL;
siStartInfo.lpReserved2 = NULL;
siStartInfo.cbReserved2 = 0;
siStartInfo.lpDesktop = NULL;
siStartInfo.dwFlags = 0;
// Create the child process.
CreateProcess(
NULL,
strCmdLine.c_str(),
NULL, // process security attributes
NULL, // primary thread security attributes
0, // handles are inherited
0, // creation flags
NULL, // use parent's environment
NULL, // use parent's current directory
&siStartInfo, // STARTUPINFO pointer
&piProcInfo); // receives PROCESS_INFORMATION
// Wait for the processs to finish
DWORD rc = WaitForSingleObject(
piProcInfo.hProcess, // process handle
INFINITE);
}

时间: 2024-09-12 01:45:20

使用CreateProcess()函数的相关文章

C++函数专题

局部变量的作用域-多线程和函数里的静态变量 关于C++类成员函数的重载.覆盖.隐藏与virtual关键字 在C++中使用Lambda函数提高代码性能 关于拷贝构造函数和赋值运算符 析构函数的奥秘 C++中强制转换函数总结 C++中的延时函数 C++中的类静态成员和静态成员函数 c与c++中的time相关函数 C++空类的默认成员函数总结 C++指针探讨(四)函数对象 C++指针探讨(三)成员函数指针 C++指针探讨(二)函数指针 C++回调函数用法 vcl库函数 在Delphi与C++之间实现函

[转贴]Gloomy对Windows内核的分析(研究CreateProcess)

                      (转载)Gloomy对Windows内核的分析(研究CreateProcess) 我给出一个反汇编Win32 API函数CreateProcess的例子,来演示研究子系统的技术,同时演示Win32是如何与Windows NT的执行系统协同工作的. 从MSDN中得到函数原型: BOOL CreateProcess(  LPCTSTR lpApplicationName,// pointer to name of executable module  LP

《C++ 黑客编程揭秘与防范(第2版)》—第6章6.6节调试API函数的使用

6.6 调试API函数的使用C++ 黑客编程揭秘与防范(第2版)Windows中有些API函数是专门用来进行调试的,被称作Debug API,或者是调试API.利用这些函数可以进行调试器的开发,调试器通过创建有调试关系的父子进程来进行调试,被调试进程的底层信息.即时的寄存器.指令等信息都可以被获取,进而用来分析. 上面介绍的OllyDbg调试器的功能非常强大,虽然有众多的功能,但是其基础的实现就是依赖于调试API.调试API函数的个数虽然不多,但是合理使用会产生非常大的作用.调试器依赖于调试事件

《C++ 黑客编程揭秘与防范(第2版)》——6.6 调试API函数的使用

6.6 调试API函数的使用 C++ 黑客编程揭秘与防范(第2版)Windows中有些API函数是专门用来进行调试的,被称作Debug API,或者是调试API.利用这些函数可以进行调试器的开发,调试器通过创建有调试关系的父子进程来进行调试,被调试进程的底层信息.即时的寄存器.指令等信息都可以被获取,进而用来分析. 上面介绍的OllyDbg调试器的功能非常强大,虽然有众多的功能,但是其基础的实现就是依赖于调试API.调试API函数的个数虽然不多,但是合理使用会产生非常大的作用.调试器依赖于调试事

《C++ 黑客编程揭秘与防范(第2版)》——6.5 破解基础知识及调试API函数的应用

6.5 破解基础知识及调试API函数的应用 C++ 黑客编程揭秘与防范(第2版)在介绍完PE文件结构以后,接下来介绍调试API.调试API是系统留给用户进行程序调试的接口,其功能非常强大.在介绍调试API以前,先来回顾一下OD的使用.OD是用来调试应用程序的强大的工具.第5章中对其进行了简单的介绍,本章中将通过实例来回顾其强大功能.同样,为了后续的部分较容易理解,这里写一个简单程序,用OD来进行调试.除了介绍调试API以外,还会介绍一些简单的与破解相关的内容.当然,破解是一个技术的积累,也是要靠

核心编程随笔3

Note 1:一个线程可以调用以下两个函数来获取和设置其进程的当前驱动器和目录:DWORD GetCurrentDirectory(DWORD cchCurDir,PTSTR pszCurDir);BOOL SetCurrentDirectory(PCTSTR pszCurDir);注意WinDef.h文件中被定义为260的常量MAX_PATH是目录名称或文件名称的最大字符数.所以在调用GetCurrentDirectory的时候,向该函数传递由MAX_PATH个TCHAR类型的元素构成的一个缓

磁盘格式化的编程实现

编程 盘格式化是计算机用户经常使用的操作之一,但由于操作系统的控制台和外壳(Shell)提供了对格式化的完美支持,使编程人员很容易忽视用户对格式化的基本需求.在他们看来,磁盘格式化对用户来说并不是一个太大的问题,应用程序不必要对它提供支持.其实,这是一个错觉,当用户在运行应用程序遇到需要格式化磁盘时,再切换到控制台或者资源管理器去格式化磁盘是非常不便和烦琐的. 还有一部分编程人员认为磁盘格式化很容易实现,没有技术障碍,因此没有赋予足够重视.其实,在实际编程时笔者发现磁盘格式化是一个不大不小的问题

保护 XML Web 服务免受黑客攻击(4/end)

web|xml|攻击 定义接口 与其他 Web 应用程序相比,XML Web 服务器应用程序的一个主要优点就是很好地定义了传递到您的应用程序的整个 XML 架构.对于应用程序设计人员和开发人员来说,这意味着您已经知道 XML Web 服务所必须处理的数据具有有效的格式.如果接收的数据格式不正确,那么 Microsoft SOAP Toolkit 2.0 或 .NET 框架之类的工具将过滤出该请求,这样您就不必为此担心了.例如,您不必分析日期输入的语法是否有效.日期必须具有有效的 XSD 格式,否

CLR 调试接口的架构与应用 [2] 调试框架

架构 如 Don Box 在<.NET本质论 第1卷:公共语言运行库>一书的第10章中介绍, CLR 调试框架是一个由 CLR 提供的,面向工具开发商的,支持调试功能的最小功能集.与 JVM 的 JDI (Java Debug Interface)不同,CLR 调试框架不仅仅关注于虚拟机一级的调试,同时也提供了 Native 一级调试的统一接口.使得现有工具开发商能够以最小代价移植并支持 CLR 调试功能.而对 CLR 调试更高层次或更细粒度的支持,则是由前面提到的 Profiling API