Z
zgj_gd
Unregistered / Unconfirmed
GUEST, unregistred user!
使用CreateProcess 时,一般在什么情况下返回失败?<br>我现在用CreateProcess 来调用 一个批处理文件(用来拷贝文件),<br>在一个窗口中,用CreateProcess 来调用批处理文件时,返回成功。<br>但将这段单位拷贝到另一个窗口后,CreateProcess 来调用另一个批处理文件时,返回失败。<br>我的代码:<br>var<br> lb_inherit,lb_success,ll_success: Boolean;<br> ls_appname,ls_commandLine: pchar;<br> ll_flags: int64;<br> lstr_startupinfo: startupinfo;<br> lstr_processinformation: process_information;<br> ll_hprocess,ll_exitcode: longword;<br>//处理的代码<br> ll_Success := FALSE;<br> ls_appname := pchar(sBatFile); //sBatFile 为批处理文件名<br> ls_commandline := pchar(sBatFile);<br> lb_inherit := FALSE;<br> ll_flags := 134217728; // 不显示窗口<br><br> lb_success := CreateProcess(ls_appname,ls_commandline,nil,nil,lb_inherit,ll_flags,nil,nil,lstr_startupinfo,lstr_processinformation);<br><br> if lb_success then<br> begin<br> ll_hprocess := lstr_processinformation.hprocess;<br><br> repeat<br> begin<br> sleep(1000);<br> ll_success := GetExitCodeProcess(ll_hprocess,ll_exitcode);<br> end;<br> until ((ll_exitcode <> 259) or (ll_success = FALSE));<br> end;<br><br> if ((lb_success = FALSE) or (ll_success = FALSE)) then<br> begin<br> ShowMessage('文件拷贝失败,请通知管理员!');<br> exit;<br> end;<br><br>大家有没有封装好的调用CreateProcess 的函数?