STARTUPINFO结构体
来源:互联网 发布:c语言预处理程序 编辑:程序博客网 时间:2024/05/29 17:29
对原文做了点点修改,仅代表自己观点,待批评指责【2014/10/16 14:27】
typedef struct _STARTUPINFO { DWORD cb; //包含STARTUPINFO结构中的字节数.如果Microsoft将来扩展该结构,它可用作版本控制手段.应用程序必须将cb初始化为sizeof(STARTUPINFO) PSTR lpReserved; //保留。必须初始化为NULL PSTR lpDesktop; //用于标识启动应用程序所在的桌面的名字。如果该桌面存在,新进程便与指定的桌面相关联。如果桌面不存在,便创建一个带有默认属性的桌面,并使用为新进程指定的名字。如果lpDesktop是NULL(这是最常见的情况 ),那么该进程将与当前桌面相关联 PSTR lpTitle; //用于设定控制台窗口的名称。如果lpTitle是NULL,则可执行文件的名字将用作窗口名.This parameter must be NULL for GUI or console processes that do not create a new console window. DWORD dwX; //用于设定应用程序窗口相对屏幕左上角位置的x 坐标(以像素为单位)。 DWORD dwY; //对于GUI processes用CW_USEDEFAULT作为CreateWindow的x、y参数,创建它的第一个重叠窗口。若是创建控制台窗口的应用程序,这些成员用于指明相对控制台窗口的左上角的位置 DWORD dwXSize; //用于设定应用程序窗口的宽度(以像素为单位) DWORD dwYSize; //子进程将CW_USEDEFAULT 用作CreateWindow 的nWidth、nHeight参数来创建它的第一个重叠窗口。若是创建控制台窗口的应用程序,这些成员将用于指明控制台窗口的宽度 DWORD dwXCountChars; //用于设定子应用程序的控制台窗口的宽度(屏幕显示的字节列)和高度(字节行)(以字符为单位) DWORD dwYCountChars; DWORD dwFillAttribute; //用于设定子应用程序的控制台窗口使用的文本和背景颜色 DWORD dwFlags; //请参见下一段和表4-7 的说明 WORD wShowWindow; //用于设定如果子应用程序初次调用的ShowWindow 将SW_*作为nCmdShow 参数传递时,该应用程序的第一个重叠窗口应该如何出现。本成员可以是通常用于ShowWindow 函数的任何一个SW_*标识符,除了SW_SHOWDEFAULT. WORD cbReserved2; //保留。必须被初始化为0 PBYTE lpReserved2; //保留。必须被初始化为NULL HANDLE hStdInput; //用于设定供控制台输入和输出用的缓存的句柄。按照默认设置,hStdInput 用于标识键盘缓存,hStdOutput 和hStdError用于标识控制台窗口的缓存 HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFO, *LPSTARTUPINFO;
当Windows 创建新进程时,它将使用该结构的有关成员。大多数应用程序将要求生成的应用程序仅仅使用默认值。至少应将该结构中的所有成员初始化为零,然后将cb成员设置为该结构的大小:
STARTUPINFO StartupInfo;char szCMDPath[255];//配置隐藏窗口结构体StartupInfo.cb=sizeof(STARTUPINFO);StartupInfo.wShowWindow=SW_HIDE;StartupInfo.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;StartupInfo.hStdInput=(HANDLE)listenFd;StartupInfo.hStdOutput=(HANDLE)listenFd;StartupInfo.hStdError=(HANDLE)listenFd;//创建匿名管道PROCESS_INFORMATION ProcessInfo;//other operationCreateProcess(NULL,szCMDPath,NULL,NULL,TRUE,0,NULL,NULL,&StartupInfo,&ProcessInfo);
表4-7 dwFlags 使用标志及含义
STARTF_USESIZE//使用dwXSize 和dwYSize 成员 STARTF_USESHOWWINDOW//使用wShowWindow 成员 STARTF_USEPOSITION//使用dwX 和dwY 成员 STARTF_USECOUNTCHARS //使用dwXCountChars 和dwYCount Chars 成员 STARTF_USEFILLATTRIBUTE//使用dwFillAttribute 成员 STARTF_USESTDHANDLES//使用hStdInput 、hStdOutput 和hStdError 成员 STARTF_RUN_FULLSCREEN//强制在x86 计算机上运行的控制台应用程序以全屏幕方式启动运行
1 0
- STARTUPINFO结构体
- STARTUPINFO结构体
- STARTUPINFO结构体
- STARTUPINFO结构
- STARTUPINFO 结构
- STARTUPINFO 结构初始化 学习笔记
- PROCESS_INFORMATION 结构 STARTUPINFO结构 SECURITY_ATTRIBUTES 结构
- STARTUPINFO
- STARTUPINFO
- STARTUPINFO
- STARTUPINFO
- STARTUPINFO详解
- startupinfo解读
- VC++ STARTUPINFO Structure
- memset(&si, 0, sizeof(STARTUPINFO)); CreateProcess
- Windows环境编程 - STARTUPINFO的说明
- 使用StartupInfo的参数设置窗口的启动位置的大小
- 基于STARTUPINFO的反调试与反反调试
- 手动释放linux缓存
- c++创建对象的两种方式
- Scala 学习笔记5(Collections)
- 二叉树线索化问题
- 装饰者模式
- STARTUPINFO结构体
- mysql在linux下修改mysql数据库文件位置
- QT应用程序添加图标
- 原码, 反码, 补码 详解
- ConcurrentHashMap之实现细节
- 不要点,我只是个抛物线
- scala 学习笔记 面向对象
- mysql在Centos下面重新安装
- linux C++ 莫名奇妙的段错误(segmentation fault),无法调用其它函数