Windows API一日一练 87 CreateProcess函数
发布时间:2020-12-14 02:28:51 所属栏目:Windows 来源:网络整理
导读:分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 人们需要处理的信息越来越复杂,往往在一个应用程序里是处理不完的,因此,就出现多个应用程序协同处理同
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net
人们需要处理的信息越来越复杂,往往在一个应用程序里是处理不完的,因此,就出现多个应用程序协同处理同一件事情。当然多个应用程序分开处理,也是比较容易开发,并且让应用程序复杂难度迅速降低。比如在开发一个银行的交易系统,有一个报表生成的主程序,然后还有很多小的,不同的报表生成程序。这样就需要从主程序里创建小报表程序进行运行。创建进程运行,需要使用函数
CreateProcess
来实现。
?
函数
CreateProcess
声明如下:
?
?
WINBASEAPI
BOOL
WINAPI
CreateProcessA(
??? __in_opt??? LPCSTR lpApplicationName,
??? __inout_opt LPSTR lpCommandLine,
??? __in_opt??? LPSECURITY_ATTRIBUTES lpProcessAttributes,
??? __in_opt??? LPSECURITY_ATTRIBUTES lpThreadAttributes,
??? __in??????? BOOL bInheritHandles,
??? __in??????? DWORD dwCreationFlags,
??? __in_opt??? LPVOID lpEnvironment,
??? __in_opt??? LPCSTR lpCurrentDirectory,
??? __in??????? LPSTARTUPINFOA lpStartupInfo,
??? __out?????? LPPROCESS_INFORMATION lpProcessInformation
??? );
WINBASEAPI
BOOL
WINAPI
CreateProcessW(
??? __in_opt??? LPCWSTR lpApplicationName,
??? __inout_opt LPWSTR lpCommandLine,
??? __in_opt??? LPCWSTR lpCurrentDirectory,
??? __in??????? LPSTARTUPINFOW lpStartupInfo,
??? __out?????? LPPROCESS_INFORMATION lpProcessInformation
??? );
#ifdef UNICODE
#define CreateProcess?CreateProcessW
#else
#define CreateProcess?CreateProcessA
#endif // !UNICODE
?
lpApplicationName
是应用程序的名称。
lpCommandLine
是命令行参数。
lpProcessAttributes
是进程的属性。
lpThreadAttributes
是线程的属性。
bInheritHandles
是否继承父进程的属性。
dwCreationFlags
是创建标志。
lpEnvironment
是环境变量。
lpCurrentDirectory
是当前目录。
lpStartupInfo
是传给新进程的信息。
lpProcessInformation
是进程返回的信息。
?
调用函数的例子如下:
#001?//
创建进程。
#002??//
蔡军生
?2007/12/11 QQ:9073204
深圳
#003??void TestCreateProcess(void)
#004??{
#005???????? //
清空结构。
#006???????? STARTUPINFO sInfo;
#007???????? PROCESS_INFORMATION pInfo;
#008?
#009???????? ZeroMemory( &sInfo,sizeof(sInfo) );
#010???????? sInfo.cb = sizeof(sInfo);
#011???????? sInfo.dwFlags = STARTF_USESHOWWINDOW;
#012???????? sInfo.wShowWindow = SW_SHOWNORMAL;
#013?
#014???????? ZeroMemory( &pInfo,sizeof(pInfo) );
#015?
#016???????? //
创建一个进程。
?????
#017??????? if( !::CreateProcess( _T("WinCpp.exe"),??
#018????????????? NULL,
#019????????????? NULL,????????????
#020????????????? NULL,????????????
#021????????????? FALSE,???????????
#022????????????? 0,???????????????
#023????????????? NULL,????????????
#024????????????? NULL,????????????
#025????????????? &sInfo,?????????????
#026????????????? &pInfo )?
???????????
#027?????????????? )
#028???????? {
#029?????????????? //
输出出错信息。
#030?????????????? const int nBufSize = 512;
#031?????????????? TCHAR chBuf[nBufSize];
#032?????????????? ZeroMemory(chBuf,nBufSize);
#033?
#034?????????????? wsprintf(chBuf,_T("CreateProcess failed (%d)./n"),GetLastError() );
#035?????????????? OutputDebugString(chBuf);
#036?????????????? return;
#037???????? }
#038?
#039?
#040???????? //
等进程关闭。
#041???????? WaitForSingleObject( pInfo.hProcess,INFINITE );
#042?
#043???????? //
关闭进程和线程的句柄。
#044???????? CloseHandle( pInfo.hProcess );
#045???????? CloseHandle( pInfo.hThread );
#046?
#047??}
?
?
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- wix – 使用msiexec / a启动管理安装的目的是什么?
- windows-server-2008-r2 – 如何验证Windows Server 2008 R
- windows-phone-8.1 – 如何知道指定的路径是否引用现有文件
- Windows – 如何在IIS上检测移动设备,以便将其重定向到特定
- windows – EXE文件中的IMAGE_FILE_NET_RUN_FROM_SWAP如何影
- Windows Presentation Foundation(WPF)项目不支持应用程序
- 在win7上运行ruby文件中的自动完成时gVim崩溃
- 从Windows上的Emacs中的“grep-find”运行时,ack不起作用
- windows – 如何向DHCP服务器添加另一个地址范围
- 在正在运行的进程上关闭Windows终端
推荐文章
站长推荐
- active-directory – 哪些文件系统最接近匹配NTF
- windows – 如何以编程方式更改第三个监视器
- 以编程方式在Windows 8上排序文件夹
- 作为键盘快捷键暂停/中断(Win32,*可能*特定于Del
- 将Microsoft动态2013或2015与PHP集成
- 如何在Window Builder中添加SwingX调色板?
- winapi – Windows游戏循环双核50%CPU
- Windows Phone 7 – WP7上的Phonegap不加载图像
- windows – django-admin.py startproject打开记
- windows – 应该在Active Directory服务器上允许
热点阅读