Если кто-то не сделал приложение, которое будет делать именно то, что вы описываете (я не знаю ни о чем), тогда решение будет включать кодирование или скриптинг.
Насколько я понял вопрос есть 2 части:
1) Как выполнить открытие пути из некоторого выбранного фрагмента текста
2) Как добавить # 1 в контекстное меню.
Для # 1 (сценарий действия):
Это может быть сделано программно на нескольких языках. Лично я бы использовал скрипт Autohotkey, но это можно сделать и другими способами.
Приведенный ниже скрипт работал для меня под Autohotkey L (1.1), который можно найти здесь https://www.autohotkey.com/download/
В настоящее время он привязан к клавише F3. Но его можно настроить на любой ключ на основе синтаксиса здесь:https://www.autohotkey.com/docs/Hotkeys.htm
Установите AHK_L, а затем сохраните как openSelPath.ahk:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; test folder D:\Downloads
; test file D:\Dev\YOmDuDV.jpg
; no-existent path D:\Dev\doesnotexist.foo
~F3::
openSelectedPath()
return
openSelectedPath() {
send, ^c
sleep, 200
strPath := Clipboard
intLen := StrLen(strPath)
if ( intLen > 0) {
;check if path exists
strResult := FileExist(strPath)
if ( "" == strResult) {
msgbox, 48, Error:, Path "%strPath%" not found.
return
}
isDir := (0 != InStr(strResult, "D"))
if ( 1 == isDir ) {
Run, explorer.exe "%strPath%"
return
}
intLastSlash := InStr(strPath, "\", false, 0)
if ( 0 == intLastSlash ) {
msgbox, 48, Error:, Path "%strPath%" not found.
return
}
strParentDir := SubStr(strPath, 1, intLastSlash- 1)
;check if path exists
strResult := FileExist(strParentDir)
if ( "" == strResult) {
msgbox, 48, Error:, Path "%strParentDir%" not found.
return
}
isDir := (0 != InStr(strResult, "D"))
if ( 1 == isDir ) {
Run, explorer.exe "%strParentDir%"
return
}
}
return
}
Для # 2 (добавление в контекстное меню):
Я вижу, что один из тегов это «контекстное меню» ... Я признаю, я не уверен, что вы сделали бы это из контекстного меню; Исходя из описания, звучит так, как будто вы хотели бы сделать это прямо из блокнота / WordPad / и т. д. Поддержка контекстных меню зависит от программы.
Я не думаю, что вы сможете получить к нему доступ из контекстного меню для любых приложений Microsoft (Блокнот /Wordpad /Word /Excel / и т.д.), Поскольку они являются закрытым исходным кодом. Вы могли бы сделать несколько плагинов для приложений Office, но я считаю, что это требует программирования.
Я знаю, что некоторые приложения с открытым исходным кодом, такие как Notepad++, поддерживают определение ярлыков через XML и т.д. (Я думаю, что опции контекстного меню могут поддерживаться и в NPP, но для этого может потребоваться написание плагина в C++).
Если вы говорите о Windows Explorer/File Explorer, можно добавить глаголы контекстного меню, но для меня не имеет смысла делать это для этого сценария, потому что вы, вероятно, запускаете из какой-то другой программы.