使用 Windows 未公开的函数:<br><br>const Shell32DLL = 'shell32.dll';<br><br>function SHChangeNotifyRegister; external Shell32DLL Index 2;<br><br>使用:它只能监视文件夹的变化,不过文件变化的时候也会得到通知,<br> 你只需要在得到通知的时候判断一下文件名就达到你的要求了。<br>SHChangeNotifyRegister(AControl.Handle,<br> SHCNF_ACCEPT_INTERRUPTS + SHCNF_ACCEPT_NON_INTERRUPTS,<br> EventMask, fMessageNo, NotifyCount, NotifyPtr);<br><br>第一个参数是接收相应消息的窗口或控件句柄,第二个参数为标志<br>第三个参数指定需要得到通知的文件变化过滤条件:<br> EventMask := SHCNE_ATTRIBUTES or SHCNE_RENAMEITEM or <br>第四个参数是当文件变化的时候发送给你的消息号,可自定义,<br> 如:WM_USER + 123<br>第五个参数指定监视的文件夹个数,根据你的要求,传 1 进去即可<br>最后一个参数是接收通知用的缓冲区,包含发生变化的实际内容,<br> 本来是一个数组,以你的需求,只需要指向一个条目的指针即可<br> 这个指针定义如下:<br> TNotyfyItem = record<br> pidlPath: PItemIDList;<br> bWatchSubtree: boolean;<br> end;<br> PNotyfyItem = ^TNotyfyItem;<br><br>当你得到消息的时候,把 WParam 参数强制转换为 PITEMIDLIST 类型,然后<br>通过如下函数对其进行转换即可。<br> function ParsePidl(pIDL: PITEMIDLIST): string;<br> begin<br> SetLength(Result, MAX_PATH);<br> if not SHGetPathFromIDList(pIDL,PChar(Result)) then<br> Result := '';<br> end;<br><br>OK,没有必要说的更细了,你先研究一下再说吧。遇到问题再问吧。<br>