可不可以在windows操作系统下创建一种内存文件,其他进程的正常i\o函数可以访问它。举个实际的例子
比如我实现一个程序,创建了一内存文本文件,然后我再调用notepad程序,带参数方式访问该文件问这有可能么?

解决方案 »

  1.   

    内存共享映射文件啊,CreateFileMapping
      

  2.   

    没仔细看,要想让notepad等其它程序也能访问,好象不行,因为这些程序不支持,如果希望也支持的话,也许通过驱动可以实现.
      

  3.   

    让NOTEPAD访问你的内存映射文件?
      

  4.   

    你的想法有问题,CreateFileMapping 
     
    已经可以直接访问内存的东东了,你还用notapad访问它有什么用,实际上,被映射的文件,可以用指针访问它的任何内容了,可以当内存来处理了
      

  5.   

    notepad访问你的内存文件?不行吧
      

  6.   

    抛开实用性不说,不用虚拟机那么复杂,用文件过滤驱动也可以实现。
    当发现是NOTEPAD在打开文件的时候,不从磁盘读取,直接读你的共享内存,然后返回给上层调用。纯技术讨论,没有一点实用价值。
      

  7.   

    创建mmf 操作文件结束后 CreateProcess(0,"notepad.exe path",...)
      

  8.   

    很简单,Hook ZwQueryDirectoryFile,隐藏你的那些文件就好了
      

  9.   

    给个我的思路。
    你把内存映射文件的内容复制一份存到剪贴板,打开记事本的时候,ctrl + v 直接粘贴就可以了,呵呵。
    这个过程代码很简单,几行就搞定。