请问打开notepad是调用那一个函数,createfile()??,但我拦截住了createfile(),word和excel不能打开,但notepad还是能打开的,难道word跟notepad打开方式不一样?还有一个问题,我昨天发了一个贴,
http://topic.csdn.net/u/20080529/10/32a5f749-fef4-414f-9992-fc1e43ee12a2.html既然我拦截了createfile(),比如是D盘的createfile();D盘里的一切都不能复制到别的盘,里面的大哥是这样解释的,因为复制文件的操作,先打开文件CreateFile ,读文件ReadFile ,打开另外一个文件CreateFile 再写文件WriteFile ,word跟excel因为不能调用createfile(),所以word跟excel不能打开,但我
不明白既然notepad不调用createfile(),为什么notepad还是不可以复制去别的盘?这个问题都困扰了我好几个星期了,请大侠们帮帮,本贴可以加到100分

解决方案 »

  1.   

    再补充一点是就是把system32的createfile()hook了,notepad还是可以打开,只有
    把system32的createprocess()拦截,notepad才不可以打开,看来notepad并不调用
    createfile()
      

  2.   

    notepad的打开当然不会用createfile,打开文件时可能才会用
      

  3.   

    如果notepad不调用createfile(),为什么notepad不可以复制去别的盘?我快疯了,
    是我太执着吗?这几天一直在想
      

  4.   

    .txt文件的打开也是调用createfile()函数
    这个我拦截过的
    但notepad.exe程序的运行就不清楚了,没研究过
      

  5.   

    notepad也是调用CreateFile的,你在Hook函数里面用GetFullPathName获得完整路径来判断试试。
      

  6.   

    请问ls,
    你的txt文件是用什么打开的?一般的txt文件不都是用notepad打开的吗?
      

  7.   

    硬盘拷贝是进程explorer.exe执行的
    在拷贝文本文档过程中 notepad.exe根本不会执行