我想讓我的 VB.NET 程式安全檔案夾都包含一些不同的檔案,因此除非程式在 Windows 中“解鎖”檔案夾,否則無法編輯其中的檔案。這可能嗎?我不希望檔案夾/檔案基本上隱藏在某些只讀狀態或其他東西或假冒視窗以為它們已經打開。目標是如果有人在沒有程式“解鎖”它們的情況下打開檔案,他們就無法編輯/保存更改。
uj5u.com熱心網友回復:
也許這篇文章對你有用:
如何在 Windows 10 中使用密碼保護檔案夾
uj5u.com熱心網友回復:
實作此功能的最佳解決方案是創建一個 Kernel Minifilter 檔案系統驅動程式,以防止其他應用程式寫入甚至讀取您的程式指定的檔案,但是,驅動程式開發需要廣泛的系統內核知識。
過濾器管理器概念
https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/filter-manager-concepts
處理 I/O 操作
https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/processing-io-operations
用戶模式和內核模式之間的通信
https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/communication-between-user-mode-and-kernel-mode
撰寫操作前回呼例程
https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/writing-preoperation-callback-routines
在操作前回呼例程中完成 I/O 操作
https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/completing-an-io-operation-in-a-preoperation-callback-routine
uj5u.com熱心網友回復:
令我驚訝的是,僅使檔案/檔案夾具有只讀屬性就可以完全按照我的意愿解決我的問題。使檔案或檔案夾只讀的示例代碼如下:
Dim LockFolder As New ProcessStartInfo("cmd", "/c ATTRIB R " """" Application.StartupPath() "\" SelectedNodeText """\* /S /D") _
With {.WindowStyle = ProcessWindowStyle.Hidden, .Verb = "runas"}
Process.Start(LockFolder)
'===== FILE LOCK:
Dim LockFile As New ProcessStartInfo("cmd", "/c ATTRIB R " """" Application.StartupPath() "\" SelectedNodeText """") _
With {.WindowStyle = ProcessWindowStyle.Hidden, .Verb = "runas"}
Process.Start(LockFile)
Application.StartupPath是我路徑的前半部分,SelectedNodeText是完成 CMD 命令的實際檔案名。剩下的只是讓命令以管理員身份運行,并且沒有彈出命令視窗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531523.html
標籤:视窗VB.net文件目录
