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盘产生联系。
郁闷中,

解决方案 »

  1.   

    在CreateProcess B后,我CloseHandle关闭线程句柄了
    ----------------------------------------
    进程句柄也关了~试试~
      

  2.   

    我关掉进程句柄了。
    也没有继承 (FALSE)CreateProcess(Explore,CmdLine,0,0,FALSE,0,0,0,&startUp,&processInfo) // 关闭子进程的主线程句柄
    CloseHandle(processInfo.hThread);
     // 关闭子进程句柄
    CloseHandle(processInfo.hProcess);
      

  3.   

    你的B有没有访问U盘上的文件之类的,如果访问的话就不能正常弹出.我做的一个软件就是因为访问U盘的文件而无法正常弹出.
      

  4.   

    怎么Copy的书,是不是文件打开了没关闭?
      

  5.   

    B是A调用的进程.应该在B运行时候U盘不能弹出的,原因不知...