2016-03-16 2 views
4

Я создал небольшой скрипт, который использует AutoHotkey автозамены, чтобы позволить мне напечатать несколько смайликов и другие специальные символы:Почему мой скрипт AutoHotkey вводит только некоторые эможи?

#SingleInstance force 

#Hotstring * ? 

::–::– 
::†::† 

::π:: 

::&shrug;::¯\_(ツ)_/¯ 
::&tm;::™ 
::&c;::© 
::&r;::® 
::&tableflip;::(╯°□°)╯︵ ┻━┻ 
::&music;::♫ 
::&piano;:: 
::&cmark;::✓ 
::&xmark;::✗ 
::&hourglass;::⌛ 

Скрипт также available on PasteBin.

все это работает в моем текстовом редакторе: screengrab from text editor

Однако некоторые замены не работают везде, например, в Телеграмма Desktop: screengrab from Telegram Desktop

Оба смайликов первоначально были скопированы из телеграмм Desktop, так они определенно поддерживаются в нем.

Почему это не работает должным образом?

Я запускаю AutoHotkey Unicode 64-бит в версии 1.1.23.3 на Windows 10 (версия 1511), Sublime Text 3 (3103) и Telegram Desktop 0.9.28.

+0

Я немного боюсь, что это проблема Unicode, которая теряется, когда код обрабатывается Stack Overflow, но я предоставил встроенную копию, тем не менее. – fefrei

+0

Я исправил эту проблему, открыв скрипт в блокноте Windows и сохранил. Я обычно работаю в блокноте ++ (UTF-8), но, видимо, что-то не сохранилось должным образом. – jiggunjer

ответ

1

Я ответил на аналогичный вопрос в прошлом: Autohotkey Replace 2 specific character with one
Я не знаю, в чем проблема, но нам удалось обойти эту проблему путем использования буфера обмена. Возможно, этот же метод может быть использован для вашего сценария.

+1

Это работает для меня - спасибо! Мне все еще хотелось бы знать основную проблему, хотя ... – fefrei

+0

Для этого нам нужно будет выяснить, какие методы ввода используются как в буфере обмена, так и в autohotkeys. – Forivin

+0

Просто идея: Autohotkey имеет несколько способов отправки текста. Возможно, ваш рабочий стол Telegram обрабатывает их по-разному. Попробуйте «Отправить», «SendInput» и «SendPlay», «SendEvent». Все они имеют один и тот же синтаксис. И тогда есть 'ControlSend',' ControlSetText' и 'PostMessage' /' SendMessage'. Это определенно сложнее в использовании, но, возможно, они сделают трюк. – Forivin