日期:2014-05-17  浏览次数:20887 次

请教一个关于进程的问题
今天在做一个恶搞程序,碰到一个麻烦,我在一个批处理文件111.bat中写了一句regedit /s 111.reg,就是把111.reg导入注册表中,然后让我的程序调用这个批处理,程序运行成功,但是我打开注册表时发现修改注册表没有成功,但是当我直接用鼠标双击运行这个批处理时,注册表竟然可以修改成功,我很郁闷,怎么两种方式,结果却不一样。用程序直接调用批处理程序运行不顶用,我想可能是360做了手脚,我想这可能是父进程和子进程之间有联系造成的吧。
谁能告诉我怎样使子进程和父进程两者独立运行,互不干扰。

------解决方案--------------------
找本书看看吧,我记得大三计算机专业操作系统课里有解决的办法,不过我没记住,你自己查查吧
------解决方案--------------------
是否权限的问题,不知你是什么系统?
------解决方案--------------------
不可能不成功,是其他原因,
C/C++ code
//下面"cmd.exe /c C:\\111.bat" 都可以换成 "C:\\111.bat"
//用system直接调用,
system

("cmd.exe /c C:\\111.bat");
//use CreateProcess
CreateProcess( "cmd.exe /c C:\\111.bat", 

//or use "C:\\111.bat"
NULL,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi); 

//use WinExec
WinExec( "cmd.exe /c C:\\111.bat",  SW_HIDE);

------解决方案--------------------
楼上说的很祥细了