
我一直在 Windows 7 中使用鍵盤快捷鍵來存取某些資料夾。
資料夾中的鍵盤快捷鍵似乎有問題C:\Users\username\Links
。我分配了快捷方式,但它不起作用。然而,任何資料夾的任何其他快捷方式都可以正常工作。我無法僅對Links
資料夾中的資料夾使用鍵盤快捷鍵。
如何解決這個問題?
編輯
我嘗試了一些解決方法,但它們不起作用:
我從「連結」資料夾中剪下了快捷方式,並將其貼到桌面上。相同的鍵盤快捷鍵不起作用。我將鍵盤快捷鍵更改為其他內容(順便說一下,我確定鍵盤快捷鍵沒有分配給其他內容)並且它使用了不同的鍵盤快捷鍵。我將其移回到“連結”資料夾中,但它不起作用。我再次將快捷方式更改為其他內容。我認為這次會起作用,但即使快捷方式移回連結資料夾並重新分配了不同的鍵盤快捷方式,它仍然有效不是工作。
答案1
測試
快捷方式替換
我進行了一些測試並得到了一些有趣且非常有說服力的結果。我在 Windows ME 中進行了測試(這是我當時手頭上有運行副本的最早的 Windows 版本),然後在 XP 和 7 上重複了該測試。
- 在桌面上建立計算器的快捷方式,為其命名
C
並為其指定一個未使用的熱鍵 - 測試熱鍵是否有效
- 在資料夾中建立記事本的快捷方式
Links
,將其命名為N
,並為其指定一個不同的、未使用的熱鍵 - 確認熱鍵有效不是工作
- 從桌面刪除計算器的捷徑
- 將記事本的捷徑從資料夾移至
Link
桌面並重新命名為C
- 按下指派給的熱鍵原來的計算器的快捷方式
- 請注意,它運行記事本
在 Windows ME 和 XP 上會出現這種情況,但在 Windows 7 中,按任一熱鍵最終都沒有任何反應。
內部熱鍵格式
由此,我們可以假設當您將熱鍵指派給快捷方式時,它會將其指派給快捷方式的完整路徑。例如,在上面的測試中,將熱鍵Alt+ ⇧Shift+設定C為計算器捷徑將導致 Windows 在內部註冊如下內容:
C A S W K P
- + + - C "C:\…\Foobar\Desktop\C.lnk"
因此,如果刪除(或移動或重新命名)快捷方式,按下該鍵將嘗試運行不存在的快捷方式。奇怪的是,如果您在 Process Explorer 中監視文件訪問,您將不會看到FILE NOT FOUND
嘗試訪問丟失的快捷方式時出現的錯誤,但如果恢復快捷方式,您將在按下熱鍵時看到它被再次訪問。
自動熱鍵管理
此外,Windows 7 不運行複製的快捷方式似乎表明每當移動、重新命名或刪除快捷方式時,資源管理器都會進行某種熱鍵管理,但當然,它的功能是有限的。 (例如,如果兩個快捷方式共享一個熱鍵,則刪除具有該熱鍵的快捷方式不會突然將熱鍵重新分配給另一個快捷方式,您需要手動打開該快捷方式的特性對話框並單擊[OK]
即可執行此操作。
連結資料夾重定向
然後我考慮重定向該Links
資料夾(圖 1)。我嘗試重定向它,然後將移動的資料夾複製回原始位置。我發現熱鍵不適用於這兩個資料夾中的快捷方式。然後,我嘗試從資料夾中剝離屬性,甚至desktop.ini
在 Windows 特殊對待它們的情況下從其中刪除文件,但這並沒有幫助。然後,我在用戶資料資料夾中創建了一個新的常規資料夾,令我驚訝的是,熱鍵仍然行不通的。
檔案系統各處的快速鍵
接下來,我嘗試使用不同驅動器上的快捷方式,但仍然沒有任何結果。我嘗試將熱鍵指派給 Windows 7 中多個不同位置的快捷方式,並且只有Desktop
或Start Menu
資料夾或其子目錄之一中的快捷方式可以使用熱鍵。
結論
看來資源管理器的捷徑熱鍵功能極為有限,僅適用於開始功能表和桌面。我不知道這是一個錯誤還是有意為之,因為我找不到任何有關該限制的提及。微軟自己的有關該主題的頁面對此什麼也沒說。(讓他們知道透過回饋表。我點擊[No]
並提交了此頁面的連結。
建議
你可以(嘗試)檢舉,但我不抱希望它能被修復。將需要熱鍵的快捷方式儲存在另一個資料夾中會更快更容易。
圖1:連結位置設定:
答案2
我最近問了一個類似的問題,我已經找到了答案,所以我想我的答案就在這裡。我的問題更多的是關於Windows快捷熱鍵管理的內部功能以及內容和方法。您可以將資料夾新增至清單嗎?是否有一些鮮為人知的資料夾可以在其中放置帶有熱鍵的快捷方式?最後,我只是確認了已經知道的事情,但我是這樣做的。
我第一次嘗試解決這個問題是看普羅克蒙的痕跡explorer.exe
。 Procmon 是一個追蹤文件和註冊表訪問的實用程序,我的結論是該進程似乎沒有在註冊表中查找任何其他路徑。
不太滿意,我記得有一個Windows 2000 原始碼大約 10 年前洩露。我追蹤到了這一點並查看了程式碼中的邏輯。事實證明,快捷方式的熱鍵是在兩個地方管理的。
- 更改快捷方式的屬性時。當按下「確定」或在屬性對話方塊中套用捷徑時,Windows 會檢查捷徑的資料夾是否是固定資料夾清單或其子資料夾。該列表是
CSIDL_PROGRAMS
,CSIDL_COMMON_PROGRAMS
,CSIDL_STARTMENU
,CSIDL_COMMON_STARTMENU
,CSIDL_DESKTOPDIRECTORY
,CSIDL_COMMON_DESKTOPDIRECTORY
如中給出CSIDL 表示法。 (每個 CSIDL 項目最終都會根據註冊表值進行查找,除非可能緩存在某個地方。我沒有查找其實現細節。)如果快捷方式位於這些位置之一,則會註冊一個熱鍵,如果適用,舊的熱鍵被擦除。 - 什麼時候
explorer.exe
開始。explorer.exe
在程式碼的不同部分中,當進程首次啟動時,將列舉所有開始功能表項目以及所有桌面項目。這兩個不同路徑的枚舉是在不同的函數中完成的。枚舉開始功能表資料夾中的項目的函數是遞歸的,並且該函數還處理圖示的快取。枚舉桌面上的項目的函數不是遞歸的,而是僅檢查桌面資料夾本身。
不會嘗試處理移動或刪除快捷方式。
這解釋了某些奇怪的行為,例如:
- 當您從有效位置移動或刪除快捷方式時,熱鍵仍保留在記憶體中,按下它會盲目地嘗試運行現在不存在的快捷方式。 (只要當前
explorer.exe
進程存在。) - 同樣,如果您將帶有熱鍵的快捷方式移至有效資料夾中,則只有在下一個會話或編輯快捷方式的屬性之前才會發現該快捷方式。
- 如果您在桌面的子資料夾中建立快捷方式,它將適用於當前
explorer.exe
會話,因為按「確定/應用」會根據上面的機制 1 新增熱鍵。但是,在下一個會話中,將不會新增此熱鍵,因為捷徑位於子資料夾中,explorer.exe
在進程首次啟動時不會遞歸到該子資料夾中。
最後,我基本上確認了已知的內容,但知道的感覺很好為什麼。
答案3
創建始終有效的快捷方式的一個可靠方法是使用自動熱鍵。
由於 AutoHotkey 快捷鍵實際上是巨集,因此該快捷鍵不僅可以保證隨時隨地工作,而且還可以執行比僅僅啟動程式更複雜的任務。
答案4
有一個相關的問題,Windows 桌面鍵盤快速鍵速度慢。
殺死睡眠應用程式可以消除超時。