2015-03-25 34 views
0

我想在打開文件之前獲取文件的內容。我在互聯網上探索它,但它沒有幫助我更多。以下是代碼:使用c在窗口中獲取文件打開事件的文件內容#

FileSystemWatcher watcher = new FileSystemWatcher(); 
    NotifyFilters.FileName | 
     NotifyFilters.DirectoryName | NotifyFilters.Attributes | NotifyFilters.CreationTime; 
    watcher.Changed += new FileSystemEventHandler(OnChanged); 
    watcher.Created += new FileSystemEventHandler(OnChanged); 
    watcher.Deleted += new FileSystemEventHandler(OnChanged); 
    watcher.Renamed += new RenamedEventHandler(OnRenamed);      
    watcher.IncludeSubdirectories = true; 
    watcher.EnableRaisingEvents = true; 

但它沒有給我一種獲取文件打開事件的方式。請幫我解決問題。

+0

聽起來就像你想創建一個Windows服務,在後臺運行並攔截在操作系統中發生的任何文件打開事件。如果是這樣,在這個窗口服務中,您應該使用FileSystemWatcher對象來攔截文件的打開。 – Veverke 2015-03-25 09:37:47

+0

你想兩次讀取文件的內容? – matcheek 2015-03-25 09:37:47

+1

我是否正確理解你,如果我假設你想要一個通知時,其他進程**打開**一些文件的閱讀?如果不創建一些非常低級別的操作系統鉤子,這是不可能的,這真的很複雜! 'FileSystemWatcher'監視**更改**,而不是**讀**。 – 2015-03-25 09:39:28

回答

0

如果你想在之前得到內容它打開,這聽起來像你需要一個文件系統的鉤子。在這種情況下,您需要學習Windows內核編程(並且需要您使用C++或其他非託管語言)

我想不出除防病毒/備份軟件以外的其他應用程序。

我想釋放掛鉤到內核的應用程序需要Microsoft或可信實體的代碼簽名。

相關問題