Gần đây tôi muốn thêm một menu lệnh mới vào menu nhấp chuột phải để có khả năng xóa các tệp và thư mục một cách an toàn bằng Sysi INTERNals SDelete . Sử dụng tài liệu MSDN và Regedit Tôi đã tạo một mục menu mới trong sổ đăng ký của mình với menu con chứa lệnh SDelete của tôi. Tôi đã làm điều này cho filetype *
cũng như Directory
để có thể xóa các tập tin và thư mục. Cho đến nay mọi thứ đều hoạt động tốt và menu mới của tôi hoạt động cho các tệp và thư mục.
Tuy nhiên, sau đó khi tôi muốn mở hồ sơ của mình bằng cách sử dụng trình khám phá Explorer trong thanh tác vụ, tôi nhận ra rằng thay vì mở trình thám hiểm của mình, nó đã gọi lệnh SDelete của tôi trên hồ sơ của mình (lúc đó tôi rất vui vì tôi đã thêm độ trễ 5 giây trước khi chấp hành ;-)). Về cơ bản tất cả các mục jumplist Explorer hành xử như vậy.
Tôi đã theo dõi vấn đề để xử lý thư mục của mình nhưng vẫn không thể tìm ra vấn đề. Bạn có thể tái tạo vấn đề bằng cách lưu mã sau vào tệp .reg và thực thi nó. Vui lòng chỉ làm như vậy nếu bạn biết cách các tệp .reg hoạt động và có thể hoàn tác thủ công các thay đổi!
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\sysinternals]
"MUIVerb"="Testmenu"
"SubCommands"="mySubCommand"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\mySubCommand]
@="A Command that should do sth."
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\mySubCommand\command]
@="cmd /K \"echo mySubCommand has been invoked\""
Bất cứ ai có thể cho tôi biết những gì tôi đang làm sai và làm thế nào tôi có thể tránh hành vi jumplist này?