有关CreateProcess?

freebob 2001-11-21 09:21:14

这是我想用createprocess启动我们一程序awmts.exe,但是并不是每次都能成功,
单独运行awmts.exe,每次都成功,why?
-----------

STARTUPINFO stinfo;
ZeroMemory((void*)&stinfo, sizeof(STARTUPINFO));
PROCESS_INFORMATION ProcessInfo;

CString sExefile = "C:\\Program Files\\fellow\\awmts\\program\\awmts.exe";

stinfo.cb = sizeof(STARTUPINFO);
stinfo.dwFlags = STARTF_USESHOWWINDOW;
stinfo.wShowWindow = SW_SHOW;

if ( !CreateProcess(NULL,(char*)(LPCTSTR)sExefile,NULL,NULL,FALSE,
NORMAL_PRIORITY_CLASS,NULL,NULL,&stinfo,&ProcessInfo) )
{
DWORD dwRet = GetLastError();
}
...全文
135 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
freebob 2001-11-21
  • 打赏
  • 举报
回复
搞定了
我用dos下的
_execl(..)
每次都可以,

等会给各位加分,谢谢你们的帮助!
freebob 2001-11-21
  • 打赏
  • 举报
回复
不是,程序的开始为一登陆对话框。


if( !CreateProcess(...)
{
...;//不成功

}
else
{
...;//成功;
}

每次都是成功的,可就是出不了登录dialog
;
换成别的程序,象cutftp32.exe,notapad.exe, 不管多大,都可以,
就它不行; 可单独执行就没问题;

邪呼?
除了winexec,createprocess,还有什么可以用?
gameboy999 2001-11-21
  • 打赏
  • 举报
回复
不可能吧~
有这种现象?是不是那个程序不能运行得太快?
DeadWolf 2001-11-21
  • 打赏
  • 举报
回复
GetLastError返回什么
freebob 2001-11-21
  • 打赏
  • 举报
回复
因为要启动的程序为以前写的,没有源码;

to:gameboy999(我心迷茫) 
还是老样子

winexec也不行,

why?
chief 2001-11-21
  • 打赏
  • 举报
回复
應該不會呀,看看錯誤返回碼是什麼,知道出錯原因后才好解決
stevenW 2001-11-21
  • 打赏
  • 举报
回复
push
suntingting 2001-11-21
  • 打赏
  • 举报
回复
你只设stinfo.cb = sizeof(STARTUPINFO);即可
alfwolf 2001-11-21
  • 打赏
  • 举报
回复
WINBASEAPI
UINT
WINAPI
WinExec(
LPCSTR lpCmdLine,
UINT uCmdShow
);
不可以吗?
gameboy999 2001-11-21
  • 打赏
  • 举报
回复
试试这个函数
int RunExe(const char * ProcessName,char * CommandLine)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

// Start the child process.
if( !CreateProcess( ProcessName, // No module name (use command line).
CommandLine, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
return 0;
}

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return 1;

}
freebob 2001-11-21
  • 打赏
  • 举报
回复
please

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧