c#中文件打开如何监视,貌似 Filesystemwatcher 监视不了,
我做的是windows窗体,就是打开一个文件后可以使程序跳出一个自定义的对话框,可以在改对话框中输入文本。
还请各位高手帮帮忙!(最好有源代码)

解决方案 »

  1.   

    System.IO.FileSystemWatcher FileWatcher = new FileSystemWatcher ();
            public FileWatchClass(string WatcherPath)
            {
               FileWatcher.Filter = "*.*"; 
               FileWatcher.Path = WatcherPath; 
                FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed); 
                FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);
                FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);
               FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);
               FileWatcher.IncludeSubdirectories = true;
                FileWatcher.EnableRaisingEvents = true;
          }       void FileWatcher_Deleted(object sender, FileSystemEventArgs e)
           {
               Console.WriteLine("【"+e.ChangeType+"】"+e.FullPath+" 删除 ");
           }
      

  2.   

    通过API Hook拦截CreateFileW/CreateFileA等函数,一般用VC来做,可以网上搜索一下。
      

  3.   


    你说的是删除(deleted),我要的是打开文件;还有我做的是windows窗体,不是控制台的
      

  4.   


    该楼已经给出了, FileWatcher_Changed,   FileWatcher_Renamed,  FileWatcher_Created 都可以实现的, 自己写个类似于Delete的事件就行了.
    把这些代码拷到窗体程序中照样是可以运行的, 自己变通下.
      

  5.   


    靠 都说了我要的不是删除的时候 也不是changed,renamed,created    是要在“打开”一个文件的时候能弹出对话框
      

  6.   

    楼上的几位都是死读书的那种。
    我有个好方法:当你打开某个文件时,不是会在系统里的任务管理器里显示相应的信息吗??
    .net里有个Process的类,可以得到当前任务管理器--应用程序里正在运行的程序。代码如下:
    C# code            Process[] ps = Process.GetProcesses();
                
                foreach (Process p in ps)
                {
                    if (p.MainWindowHandle != null)
                    {
                        Console.WriteLine("{0}---{1}", p.MainWindowTitle,p.MainModule.FileName.ToString());
                    }
                }
    别忘了添加
    using System.Diagnostics;