Страница 1 из 1
ссылки на локальные ресурсы
Добавлено: 21 фев 2017, 09:15
Rabbit
Просьба превращать ссылки на папки и файлы в компьютере или сети в ссылки, так же, как это делается с web ссылками.
например, вставил в комментарий E:\Проекты\001
а чтобы перейти в эту папку, приходится копировать текст адреса, открывать проводник, вставлять адрес и переходить по нему
ссылки на локальные ресурсы
Добавлено: 21 фев 2017, 09:28
lobaty
Файлы
Это сделано. При нахождении курсора в теле заметки - ПКМ → "Вставить ссылку на файл...", вставляем ссылку на файл
Папки
Сделано, но корявенько. При нахождении курсора в теле заметки - ПКМ → "Вставить ссылку на файл...", вставляем ссылку на файл, который находится в нужной папке, а потом самое интересно - удаляем в ссылке текст названия и расширения файла.
ссылки на локальные ресурсы
Добавлено: 21 фев 2017, 09:42
Rabbit
интересно, спасибо. но так пользоваться затруднительно.
Проще даже было бы предложить так:
Вставить ссылку из буфера, написать перед ссылкой слово file: без пробелов и потом все пробелы в ссылке вручную заменить на %20.
Так быстрее, но так тоже невозможно нормально пользоваться.
всё-таки, удобнее вставлять ссылки так же просто из буфера обмена, как web ссылки. Чем они хуже?
тем более, путь вставляется очень плохо: пробелы заменяются на %20, что делает ссылку нечитаемой для человека.
Предлагаю просто брать ссылки в кавычки. Если текст имеет слеш или обратный слеш и при этом находится в кавычках, то делать это ссылкой
ссылки на локальные ресурсы
Добавлено: 03 мар 2017, 17:53
andrey
Rabbit писал(а):Источник цитаты Просьба превращать ссылки на папки и файлы в компьютере или сети в ссылки, так же, как это делается с web ссылками.
например, вставил в комментарий E:\Проекты\001
Пишем:
file:E:\Проекты\001
Если в имени пробелы:
<file:E:\Проекты мои\001>
ссылки на локальные ресурсы
Добавлено: 04 мар 2017, 15:45
Rabbit
andrey писал(а):Если в имени пробелы:
<file:E:\Проекты мои\001>
спасибо, хотя, конечно, менее удобно, чем просто ссылка, как в случае гиперссылок. Много лишних действий
ссылки на локальные ресурсы
Добавлено: 24 мар 2017, 08:29
Rabbit
Только что долго искал этот вопрос на форуме, чтобы вспомнить, как правильно программировать ссылку на файл в теле задачи.
Просьба упростить процесс вставки ссылок на файлы и папки до того же набора действий, который нужен для вставки ссылки на web страницы
ссылки на локальные ресурсы
Добавлено: 20 июн 2017, 12:33
Rabbit
Проблема актуальна и продолжает доставлять неудобства
ссылки на локальные ресурсы
Добавлено: 06 фев 2018, 21:35
laburj
Rabbit,
Написал скрипт, который позволяет сохранить в буфере обмена путь к файлу, который распознаёт MLO как ссылку к файлу.
После нажатия хоткея на файле можно переключиться в MLO в заметку к требуемой задаче и нажать ctrl+v.
Скрипт работает в данном виде только в тотал коммандаре и при условии, что в файле настроек тотал коммандара wincmd.ini указан хоткей:
На требуемом файле требуется нажать win+i
Благодарность за часть кода, связанную с буфером обмена - YMP - разработчику с Серого форума
Сам скрипт:
Код: Выделить всё
;#NoTrayIcon ; без иконки в трее
#NoEnv
SetTitleMatchMode RegEx
#IfWinActive ahk_class TTOTAL_CMD
#i::
Send !{vk7A} ; alt+F11
path:=ClipGetText(CodePage=1251)
;MsgBox %path% ; проверка скопированного в буфер пути
buferobmena=<file:%path%>
ClipPutText(buferobmena, LocaleID=0x419)
;Send ^{vk56} ; вставка в MLO происходит самостоятельно,поэтому вставляем ручками ctrl+v в нужном месте
return
ClipPutText(Text, LocaleID=0x419)
{
CF_TEXT:=1, CF_LOCALE:=16, GMEM_MOVEABLE:=2
TextLen :=StrLen(Text)
HmemText :=DllCall("GlobalAlloc", "UInt", GMEM_MOVEABLE, "UInt", TextLen+1) ; Запрос перемещаемой
HmemLocale:=DllCall("GlobalAlloc", "UInt", GMEM_MOVEABLE, "UInt", 4) ; памяти, возвращаются хэндлы.
If(!HmemText || !HmemLocale)
Return
PtrText :=DllCall("GlobalLock", "UInt", HmemText) ; Фиксация памяти, хэндлы конвертируются
PtrLocale :=DllCall("GlobalLock", "UInt", HmemLocale) ; в указатели (адреса).
DllCall("msvcrt\memcpy", "UInt", PtrText, "Str", Text, "UInt", TextLen+1, "Cdecl") ; Копирование текста.
NumPut(LocaleID, PtrLocale+0) ; Запись идентификатора локали.
DllCall("GlobalUnlock", "UInt", HmemText) ; Расфиксация памяти.
DllCall("GlobalUnlock", "UInt", HmemLocale)
If not DllCall("OpenClipboard", "UInt", 0) ; Открытие буфера обмена.
{
DllCall("GlobalFree", "UInt", HmemText) ; Освобождение памяти,
DllCall("GlobalFree", "UInt", HmemLocale) ; если открыть не удалось.
Return
}
DllCall("EmptyClipboard") ; Очистка.
DllCall("SetClipboardData", "UInt", CF_TEXT, "UInt", HmemText) ; Помещение данных.
DllCall("SetClipboardData", "UInt", CF_LOCALE, "UInt", HmemLocale)
DllCall("CloseClipboard") ; Закрытие.
}
ClipGetText(CodePage=1251)
{
CF_TEXT:=1, CF_UNICODETEXT:=13, Format:=0
If not DllCall("OpenClipboard", "UInt", 0) ; Открытие буфера обмена.
Return
Loop
{
Format:=DllCall("EnumClipboardFormats", "UInt", Format) ; Перебор форматов.
If(Format=0 || Format=CF_TEXT || Format=CF_UNICODETEXT)
Break
}
If(Format=0) { ; Текста не найдено.
DllCall("CloseClipboard")
Return
}
If(Format=CF_TEXT)
{
HmemText:=DllCall("GetClipboardData", "UInt", CF_TEXT) ; Получение хэндла данных.
PtrText :=DllCall("GlobalLock", "UInt", HmemText) ; Конвертация хэндла в указатель.
TextLen :=DllCall("msvcrt\strlen", "UInt", PtrText, "Cdecl") ; Измерение длины найденного текста.
VarSetCapacity(Text, TextLen+1) ; Переменная под этот текст.
DllCall("msvcrt\memcpy", "Str", Text, "UInt", PtrText, "UInt", TextLen+1, "Cdecl") ; Текст в переменную.
DllCall("GlobalUnlock", "UInt", HmemText) ; Расфиксация памяти.
}
Else If(Format=CF_UNICODETEXT)
{
HmemTextW:=DllCall("GetClipboardData", "UInt", CF_UNICODETEXT)
PtrTextW :=DllCall("GlobalLock", "UInt", HmemTextW)
TextLen :=DllCall("msvcrt\wcslen", "UInt", PtrTextW, "Cdecl")
VarSetCapacity(Text, TextLen+1)
DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0, "UInt", PtrTextW
, "Int", TextLen+1, "Str", Text, "Int", TextLen+1
, "UInt", 0, "Int", 0) ; Конвертация из Unicode в ANSI.
DllCall("GlobalUnlock", "UInt", HmemTextW)
}
DllCall("CloseClipboard") ; Закрытие.
Return Text
}
Запустить скрипт можно аналогичным образом как описано тут:
viewtopic.php?f=18&t=5250