CreateProcess 的 怪问题

w100 2006-10-13 02:27:19
1、在U盘上执行一个程序A
2、这个程序拷贝另一个程序B到C盘,通过CreateProcess 创建B。(B的文件存放在C盘下)
3、A程序退出,B程序继续执行。
4、问题,U盘无法正常卸载。

在CreateProcess B后,我CloseHandle关闭线程句柄了,可是为什么无法卸载U盘呢?
同样使用 WinExec,Shellexecute,都不行,只有关闭B进程以后才可以正常卸载U盘。
B进程的信息显示:其为C盘下的一个进程,并没有与U盘产生联系。
郁闷中,
...全文
221 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙凤呈祥焱 2006-10-21
  • 打赏
  • 举报
回复
你试一下单独运行B的时候能不能弹出U盘.
pzhuyy 2006-10-21
  • 打赏
  • 举报
回复
B是A调用的进程.应该在B运行时候U盘不能弹出的,原因不知...
DentistryDoctor 2006-10-13
  • 打赏
  • 举报
回复
怎么Copy的书,是不是文件打开了没关闭?
gaopl_8278 2006-10-13
  • 打赏
  • 举报
回复
你的B有没有访问U盘上的文件之类的,如果访问的话就不能正常弹出.我做的一个软件就是因为访问U盘的文件而无法正常弹出.
w100 2006-10-13
  • 打赏
  • 举报
回复
我关掉进程句柄了。
也没有继承 (FALSE)

CreateProcess(Explore,CmdLine,0,0,FALSE,0,0,0,&startUp,&processInfo)

 // 关闭子进程的主线程句柄
CloseHandle(processInfo.hThread);
 // 关闭子进程句柄
CloseHandle(processInfo.hProcess);
yjgx007 2006-10-13
  • 打赏
  • 举报
回复
你可能在B进 程中指定了继承A进程,试着去掉继承 !
Jokar 2006-10-13
  • 打赏
  • 举报
回复
在CreateProcess B后,我CloseHandle关闭线程句柄了
----------------------------------------
进程句柄也关了~试试~
vcnewer 2006-10-13
  • 打赏
  • 举报
回复
帮顶

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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