Например, скажем, у меня где-то есть текст (Блокнот, Word ...):

Перейдите в каталог C:\Program Files, затем ...

Я бы хотел выделить то, что выделено жирным шрифтом, щелкнуть правой кнопкой мыши и выбрать пункт меню « Перейти к C:\Program Files ».

Есть ли какое-либо расширение (или, возможно, способ Windows), имеющее это?

1 ответ1

1

Если кто-то не сделал приложение, которое будет делать именно то, что вы описываете (я не знаю ни о чем), тогда решение будет включать кодирование или скриптинг.

Насколько я понял вопрос есть 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, можно добавить глаголы контекстного меню, но для меня не имеет смысла делать это для этого сценария, потому что вы, вероятно, запускаете из какой-то другой программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .