2010-01-02 71 views

回答

11

在Windows 2000及更高版本中,如果不使用內核模式驅動程序,則無法執行此操作。 Process Explorer和其他類似工具會自動加載驅動程序來完成此操作。這是因爲文件句柄位於內核空間中,不能被用戶模式應用程序(EXE文件)訪問。

如果您真的對此感興趣,請查看this project

+0

您可以看到Process Explorer正在通過查看'System'進程的DLL來加載驅動程序;你會看到一個類似於'PROCEXP113.SYS'的驅動程序加載 – 2010-01-02 03:53:06

3

MSDN批准的方式是IFileIsInUse::GetAppName()。不過,需要Vista。

+0

這似乎需要打開一個文件的程序進行合作,這與所要求的不一樣。 – Mehrdad 2013-08-26 07:18:32

+0

這是信息量最大的方式,這就是爲什麼你應該先嚐試一下。 – MSalters 2013-08-26 09:16:22

+1

當然,嘗試它並沒有什麼壞處,但它的工作機會非常低,所以OP很可能需要替代品。 – Mehrdad 2013-08-26 09:18:30