最大的問題是,這樣安全嗎?

最大的問題是,這樣安全嗎?

有沒有辦法將另一個程式設定為開啟資料夾或「我的電腦」時開啟的預設程式?我想用另一個程式(例如 FreeCommander)取代 Windows 資源管理器。我嘗試查看程式關聯的控制面板選項,但找不到打開資料夾的選項。

我認為某個地方有一些正則表達式可以做到這一點,但我不會手動搜尋。

答案1

總的來說,PHOENiX的問題是正確的,但有一個問題。註冊表項HKEY_CLASSES_ROOT\Folder不僅涵蓋目錄,還涵蓋各種特殊資料夾,例如控制面板等等。如果您嘗試在第 3 方檔案管理器中開啟此類特殊資料夾,它很可能會失敗,因此您將無法再使用這些資料夾。

你真正想要的只是配置目錄驅動器在文件管理器中開啟。有兩個註冊表項:

  • HKEY_CLASSES_ROOT\Directory
  • HKEY_CLASSES_ROOT\Drive

以下是如何將 Total Commander 設定為預設檔案管理器的兩個範例。當按一下(例如在「開始」功能表中)、雙擊(例如在桌面、Windows 檔案總管等上)、從其他應用程式開啟等時,兩者都會導致在Total Commander 中的新分頁中開啟任何目錄或驅動器。打開目錄/驅動器上下文選單中的項目,第二個是新增項目在 Total Commander 中開啟將 Total Commander 的圖示加入到上下文功能表中。

只需將以下內容複製並貼上到新檔案中,為其指定.reg擴展名並執行即可。當然,您需要確保擁有 Total Commander 可執行檔的正確路徑。

檢查文件更多細節。

1.使用預設的打開物品

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="open"

[HKEY_CLASSES_ROOT\Drive\shell\open\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"

[HKEY_CLASSES_ROOT\Directory\shell]
@="open"

[HKEY_CLASSES_ROOT\Directory\shell\open\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

2. 新增的上下文選單項在 Total Commander 中開啟

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander]
@="Open in Total Commander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander]
@="Open in Total Commander"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

Total Commander 的命令列參數

上面的範例中使用了 4 個命令列參數:

  • "%1":開啟的目錄/磁碟機的路徑,應該用引號引起來,以正確處理帶有空格字元的路徑
  • /O:使用 Total Commander 的現有實例而不是執行新實例
  • /T:開啟一個新選項卡而不是重複使用目前活動的選項卡
  • /S:開啟的目錄/磁碟機將被視為來源,因此它將在目前活動標籤所在的面板中開啟

檢查文件了解更多參數。

答案2

透過比較將 Q-Dir 設定為文件瀏覽器之前和之後的註冊表與其「附加」功能表中的選項,以下是它實際執行的操作(因為該軟體似乎不是開源的):

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell
Change: Added Value
Value: *Q-Dir
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Value (Icon)
Value: C:\Program Files\Q-Dir\Q-Dir.exe
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Value
Value: "C:\Program Files\Q-Dir\Q-Dir.exe" /e>%L>%D>%1>%S>
Type: REG_SZ

它正在建立一個shell 命令,該命令也會出現在上下文選單中,但是,這將是「預設」操作,因此如果您在Windows 檔案總管中開啟某些內容,它將在Q-Dir 中打開。

第一個登錄機碼變更將預設 shell 設定為新建立的*Q-Dirshell 命令。

最後一次註冊表更改的值具有以下含義:

"C:\Program Files\Q-Dir\Q-Dir.exe"-- 執行 Q-Dir.exe
/e>%L>%D>%1>%S>-- 使用這些參數

>%L>%D>%1>%S>是命令列變量,此處進一步解釋:為上下文選單編寫 shell 指令時哪些特殊變數可用

然而,>它們之間的 和/e是 Q-Dir 特有的。 Q-Dir 專門實現了一個/e接受值的開關,以便它可以>根據優先級鏈中的需要進行拆分和使用。


最大的問題是,這樣安全嗎?

我們不確定,但請謹慎行事。我已經注意到,shell 替換程式可能會獲得一個參數,人們可能期望它是一個文件路徑,但實際上它是一個奇怪的 GUID 字串,例如,格式為::{123E4567-E89B-12D3-A456-426614174000}\8\::{123E4567-E89B-12D3-A456-426614174000}.例如,如果您右鍵單擊開始功能表中的應用程式 -> 卸載,就會發生這種情況,該應用程式通常會傳遞到資源管理器(預設為 shell)並從那裡處理。

處理此問題的一種方法是建立一個中間程序,該程序接受參數,確保它是檔案路徑,如果不是,則將參數傳遞給 explorer.exe,而不是打開真正想要的 shell。像 Q-Dir 這樣的程式直接在其中編寫了這個或類似的東西,因此 Q-Dir 不需要這個。

答案3

不確定 FreeCommander,但是Q-目錄有一個選項將該文件管理器設定為預設值:

在此輸入影像描述

不過,如果作為便攜式應用程式運行,該設定有一些限制。例如,Win E啟動 Windows 資源管理器,儘管有一個上下文功能表項目可以使用 Q-Dir 開啟資料夾。

答案4

在他的賞金中,Erel Segal-Halevi 要求一個帶有選項卡的檔案管理器。

有許多替代文件管理器,其中大部分是免費的,其中一些支援選項卡。文章中提供了帶有評論的此類產品的列表 最佳免費文件管理器。從這個清單中,埃雷爾選擇了 QTT標籤欄,它透過選項卡和額外的資料夾視圖擴展了 Windows 資源管理器。

甚至存在可以向 Windows 上的任何產品添加選項卡的產品,包括 Windows 資源管理器: 整潔標籤任務空間

相關內容