(转)createProcess时不显示或者不创建窗口

http://blog.163.com/zhucongdzkd@126/blog/static/1399971932010780309154/

createProcess时不显示或者不创建窗口  

使用WIN32 API CreateProcess()以无窗口方式创建DOS程序
要达到DOS程序运行时不显示窗口的效果,有两种可能:
一是创建该DOS进程时,指定不创建窗口;
二是隐藏该DOS进程有窗口。
根据MSDN,CreateProcess() API的原型如下:
BOOL CreateProcess(
  LPCTSTR lpApplicationName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

其中,dwCreationFlags指定为CREATE_NO_WINDOW,即以不创建窗口方式创建DOS进程。
LPSTARTUPINFO lpStartupInfo参数又为STARTUPINFO结构,如下:
typedef struct _STARTUPINFO {
  DWORD cb;
  LPTSTR lpReserved;
  LPTSTR lpDesktop;
  LPTSTR lpTitle;
  DWORD dwX;
  DWORD dwY;
  DWORD dwXSize;
  DWORD dwYSize;
  DWORD dwXCountChars;
  DWORD dwYCountChars;
  DWORD dwFillAttribute;
  DWORD dwFlags;
  WORD wShowWindow;
  WORD cbReserved2;
  LPBYTE lpReserved2;
  HANDLE hStdInput;
  HANDLE hStdOutput;
  HANDLE hStdError;
} STARTUPINFO,
*LPSTARTUPINFO;

其中,指定STARTUPINFO结构中WORD wShowWindow为SW_HIDE,即以不显示窗口方式创建DOS进程。
在Visusl Studio 2005中实测的结果是:创建[CMD /C] DOS进程,第一种方式可以无窗口方式创建DOS进程,而第二种方式没有正确的隐藏DOS窗口。

转载于:https://www.cnblogs.com/vc60er/archive/2012/12/25/2832591.html

CreateProcess 隐藏窗口的坑! 最近自己要写一个程序能够创建进程隐藏 阅读详情

相关推荐

使用winExec 、ShellExecute、ShellExecuteEx、CreateProcess创建进程

进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,每一个进程都是一个实体有属于自己的地址控件,进程也是一个执行的程序(也就是说一个运行中的程序就是一个进程(这是小编自己的理解))。 狭义定义:进程是正在运行的程序的实例 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 特征 动态性:进程的实质是程序在多道程序系统中的一次执

qq_43812868的博客 2173

CreateProcess显示或者创建窗口 (或用虚拟桌面实现后台调用外部程序)...

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33728268的博客 1406

createprocess创建进程并获取进程窗口HWND

createprocess创建进程并获取进程窗口HWND,窗口是否在显示状态都可以获取。

使用WIN32 API CreateProcess()以无窗口方式创建DOS程序

要达到DOS程序运行显示窗口的效果,有两种可能: 一是创建该DOS进程,指定创建窗口; 二是隐藏该DOS进程有窗口。 根据MSDN,CreateProcess() API的原型如下:     BOOL CreateProcess(       LPCTSTR lpApplicationName,       LPTSTR lpCommandLine,       LPSECURITY_ATTRIBUTES lpProcessAttributes,   

2688

CreateProcess显示或者创建窗口 (或用虚拟桌面实现后台调用外部程序)

最近接触一个项目,vc中主窗口调用某个存在的EXE可执行文件在DOS(或者后台)执行,但是想让用户看到这个执行文件,也就是显示或者创建窗口。从网上搜了很多总结了三种方法,希望对大家有用: 网上常见的两种方法(详细说明参考:http://blog.163.com/zhucongdzkd@126/blog/static/1399971932010780309154/): 方法一:将 Cr

rongwenbin的专栏 8687

CreateProcess 创建进程但显示窗口

BOOL CreateMyProcess() { STARTUPINFO si; PROCESS_INFORMATION pi = {0}; ZeroMemory(&si,sizeof(si)); si.cb = sizeof(si); si.wShowWindow = SW_HIDE; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_U...

feixi7358的博客 3360

重读Windows核心编程--CreateProcess

先来看看CreateProcess的定义 BOOL CreateProcess ( PCTSTR pszApplicationName, PTSTR pszCommandLine, PSECURITY_ATTRIBUTES psaProcess, PSECURITY_ATTRIBUTES psaThread, BOOL bInheritHandles, DWORD fdwCreate

dvstter的专栏 660

createprocess创建进程并隐藏新进程的窗口

<br /><br />方法很简单,在createprocess调用修改一下STARTUPINFO的参数,使其隐藏即可。<br />下面是代码示例:<br />PROCESS_INFORMATION pi;<br />STARTUPINFO si;      //隐藏进程窗口<br />si.cb = sizeof(STARTUPINFO);<br />si.lpReserved = NULL;<br />si.lpDesktop = NULL;<br />si.lpTitle = NULL;<b

highyyy的专栏 1万+

windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄

windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄 C++使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄。 主要思路是: 定义getDwProcessId函数,用于监听创建窗口的活动。 定义EnumWindowsProcGetWndTitle回调函数,用于捕获子窗口句柄。 把捕获的句柄赋值给全局变量,用于主函数执行子窗口操作。 图例如下: 示例如下: 程序入口点代码 ```c++ //zhaoanan

河北科技大学,电子信息科学与技术。 1421

createprocess 窗口句柄_windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄...

windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄C++使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄。主要思路是:定义getDwProcessId函数,用于监听创建窗口的活动。定义EnumWindowsProcGetWndTitle回调函数,用于捕获子窗口句柄。把捕获的句柄赋值给全局变量,用于主函数...

weixin_33844346的博客 903

C++函数CreateProcess隐藏窗口

//************************************ // Method: CreateMyBatOrProcess // Access: public // Returns: void // CreateTime: 2018年07月18日 // Author: d // Describe: CreateProce...

就是那个党伟 2766

CreateProcess创建一个隐藏进程

delphi中使用CreateProcess创建一个隐藏进程 FillChar(StartUpInfo, SizeOf(StartUpInfo), 00); StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.w

haiou327’blog 9839

CreateProcess创建新的进程

typedef struct _STARTUPINFO{   DWORD cb;            //包含STARTUPINFO结构中的字节数.如果Microsoft将来扩展该结构,它可用作版本控制手段.                        应用程序必须将cb初始化为sizeof(STARTUPINFO)   PSTR lpReserved;      //保留。必须初始化为N

jiangxinyu的专栏 5340

CreateProcess并隐藏窗口

PROCESS_INFORMATION pi; STARTUPINFO si;      //隐藏进程窗口 si.cb = sizeof(STARTUPINFO); si.lpReserved = NULL; si.lpDesktop = NULL; si.lpTitle = NULL; si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindo

NickWei的博客 6241

易语言api CreateProcess 创建进程

封装进程创建的原因主要是易语言自带的运行和执行命令能启动游戏,当我们写一键启动,批量启动游戏,便用到了进程_创建的命令。 用到的API CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件,我们先学习它的函数原型,参数和返回值。 函数原型 BOOL CreateProcess ( LPCTSTR lpApplicationName,//程序路径可以是相对也可以是绝对路径 LPTSTR lpCommandLin

511遇见 7512

MFC CreateProcess创建可控制窗口的进程

typedef   struct   tagWNDINFO 02.{ 03.    DWORD  dwProcessId;//进程ID 04.    HWND   hWnd;//所在窗口 05.}WNDINFO,   *LPWNDINFO;//窗口信息 06.STARTUPINFO StartInfo;//启动信息 07.memset(&StartInfo,

flyingleo1981的专栏 2730

VC创建进程CreateProcess的方法

本文实例讲述了VC创建进程CreateProcess的方法。分享给大家供大家参考。具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

BlueMan 1521
上一篇: transact.h(226) : error C2059: syntax error : 'constant'
下一篇: vc6开发activex并发布全攻略(一)(初级篇)(转载)
afdd28617
博客等级 码龄12年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值