1

Тема: AHK: определение типа данных в буфере

На работе мне часто приходится обмениваться информацией о конкретных файлах с коллегами.


OnClipboardChange:
StringReplace, Clipboard, Clipboard, D:\_works\, \\MYMACHINE\_works\, All
return

Когда я копирую путь к файлу, этот скрипт автоматически заменяет его на сетевой путь.
Но, к сожалению, выяснилось, что команда

StringReplace, clipboard, clipboard, ABC, DEF, All

полагает текстом не только скопированный путь, но и сам файл.
Иными словами, когда я копирую файл, попадающий под такую маску, не копируется ничего (ни сам файл, ни путь к нему).
Как можно модифицировать код так, чтобы при копировании файлов ничего не заменялось, а при копировании именно текста — да?

2

Re: AHK: определение типа данных в буфере

Вот такая есть идея:

OnClipboardChange:
If DllCall("IsClipboardFormatAvailable", "Int", 16)     ; CF_LOCALE
    StringReplace, Clipboard, Clipboard, D:\_works\, \\MYMACHINE\_works\, All
return

3

Re: AHK: определение типа данных в буфере

Сударь, мой поклон и благодарности!
Я фиговый программист и мне бы в голову не пришло, что есть возможность обращаться к WinAPI, что там есть такая возможность, не перелопатив весь MSDN и весь хелп к AHK.
Спасибо ещё раз!