CreateProcess 失败!%1 不是有效的 Win32 应用程序。莫名其妙啊

QQ286251099 2011-07-09 12:37:46

FillChar(StartupInfo,SizeOf(StartupInfo),0);
StartupInfo.cb := SizeOf(StartupInfo);

FillChar(ClRunInf,SizeOf(ClRunInf),0);
sAppFileName := '"E:\中文\中文.exe"';
sCommandLine := sAppFileName + ' ' + (sParam1) + ' ' + sParam2;
//听说 lpCommandLine 会被写...
Move(sCommandLine[1],szCommandLine, Length(sCommandLine));
szCommandLine[Length(sCommandLine) + 1] := #0;
if CreateProcess(nil,//PChar(sAppFileName), //lpApplicationName,
@szCommandLine, //lpCommandLine, "E:\中文\中文.exe" sParam1 sParam2 //双引号 加不加好象都一样
nil, //lpProcessAttributes,
nil, //lpThreadAttributes,
False, //bInheritHandles,
0,//Create_SUSPENDED, //dwCreationFlags,Create_SUSPENDED
nil, //lpEnvironment,
PChar(sMirPath), //lpCurrentDirectory,
StartupInfo, //lpStartupInfo,
ClRunInf)then begin //lpProcessInformation

//Result:=GetLastError();
end else begin
//直接双击 E:\中文\中文.exe 是可以跑的
//在有些的机器上跑不起来 本机能跑
OutMsg('失败 2:' + SysErrorMessage(GetLastError));//%1 不是有效的 Win32 应用程序。
end;

...全文
1014 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ286251099 2011-09-13
  • 打赏
  • 举报
回复
抱歉
环境未说清楚,引得大家一通猜测。
CreateProcess 用的exe是动态释放的。
因为是释放出EXE 就 CreateProcess
肯定是
杀毒还在检测EXE文件 检测前杀毒会先锁定文件为不可读
谢谢大家
结贴
qiyuanxjy 2011-08-17
  • 打赏
  • 举报
回复
我肯定你装了360了,而且你的程序叫Project1.exe
qiyuanxjy 2011-08-17
  • 打赏
  • 举报
回复
我肯定你装了360了,而且你的程序叫Project1.exe
gyk120 2011-08-13
  • 打赏
  • 举报
回复
是你的中文路径问题吧,换个英文路径看看
Lactoferrin 2011-08-13
  • 打赏
  • 举报
回复
,来啊
QQ286251099 2011-08-13
  • 打赏
  • 举报
回复
当散分了,来啊
QQ286251099 2011-07-09
  • 打赏
  • 举报
回复
szCommandLine: array [0..MAX_PATH] of Char;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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