像360那样,用户打开了哪个程序,哪个文件C#可以记录下来。不需要拦截,只要能知道就行了。
现在我能想到的就是定时循环读取进程表,然后得到文件的路径等信息,这个方法不怎么好,没有360那么nb。
还有一个问题很困扰我:
有人用过:SortedList吗?比较诡异喔我写了一个方法:
方法()
{
     建两个SortedList的对象A和B;
      SortedList A;
      SortedList B;    while(true)循环进行
    {
      B被修改(追加数据,删除数据之类)            将A与B比较,打印A有B没有的内容
      将A与B比较,打印B有A没有的内容      A=B;把B的内容赋值给A;
    }
}遇到的问题是:每次我执行到:
将A与B比较,打印A有B没有的内容 
将A与B比较,打印B有A没有的内容这两句的时候,它都打印不出任何内容,也就是说程序认为A和B没有差异。事实是B被修改了,A和B肯定有差异,我反复调试,发现问题出在最后一句:A=B;把B的内容赋值给A;只要没有这句,程序就能发现差异打印内容,诡异就诡异在这一句似乎被提前执行了!!!
无论我把A=B;把B的内容赋值给A;这句放在循环里的哪个位置,它都被第一句执行,这种情况还是第一遇到,c#新手,诡异啊~~~ 高手们,这是怎么回事呢?

解决方案 »

  1.   

    如果我用记事本打开A.txt 和 B.txt 你知道我打开什么文件了?
    进程里都只有记事本的进程
      

  2.   

    1、使用C#中的FileSystemWatcher控件
    2、使用ICopyHook接口,没见过的话先查查百度
      

  3.   

    这个估计楼主要仔细研究下windows编程的东西
    纯属猜想
      

  4.   

    满大街都是关于透明加解密的windows驱动层编程范例书籍。不过抄书可能只会作出非常不稳定的程序,而这些不稳定的程序会让一个公司的声誉扫地。所以当我们寻找windows的c语言驱动级编程人员时会知道风险。
      

  5.   

    谢谢大家,有点思路了,另外sortlist的问题也解决了,不能直接等于||——