Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Эмодзи, ALT-коды, UTF-8(hex), Проблемы юникода, вирт. клавиш эмодзи, а так же 16-ричных аль-кодов (с
JyT0
сообщение 1.7.2019, 20:13
Сообщение #1


*

Registred
Сообщений: 2
Регистрация: 1.7.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.359
Возраст: 25



Здравствуйте.
Задался вопросом ввода Emoji с помощью UOPilota в Telegram.
Имеется: Windows 10 и iGram (клиент телеграм)
Сразу скажу, имеется более легкий способ через простой набор шорткода в ТГ, например :joy: для ��. Но захотелось проверить получится ли именно отправлять эмодзи средствами пилота в винде 10.

Поиск Эмодзи показал только одно упоминание тут. Уважаемый FREEON дал очевидную точку отправки
Цитата
нужно искать шорткоды эмодзи или юникод код с зажимом клавиши Alt.

Вариант 1: Самым очевидным вводом эмодзи мне видится комбинация Alt+цифры.
Вариант 2: Есть еще коды виртуальных клавиш https://docs.microsoft.com/en-us/windows/de...rtual-key-codes
Для примера взял
//0x30 0 key
//0x34 4 key
Проверяю:
Код
send {0x30}
// всё отлично, в чат вводится 0

Пробую узнать вирт. код клавиши для эмодзи. Для себя отобрал сайты https://apps.timwhitlock.info/unicode/ и https://graphemica.com/%D0%AF
К сожалению, кода виртуальных клавиш эмодзи для Windows 10 найти так и не смог. Точнее не совсем вышло разобраться, что является этим кодом.
На timwhitlock ввел пример из символов и эмодзи timwhitlock.info ▬╤209яЯ‼��*4��☠
Цифра 2 на docs.microsoft.com...virtual-key-codes имеет код 0x32 и на сайте в графе HEX Code стоит 0032, а UTF-8 (hex) 32
И тут первый нюанс - HEX Code иUTF-8 (hex) других символов имеют уже 16-ричный вид.
☠ "череп" = UTF-8 (hex) 0xE2 0x98 0xA0 (e298a0)
▬ "черта" (альт+209) = UTF-8( E2 96 AC ) Code (25AC)
"Я" = UTF-8 (hex) 0xD0 0xAF (d0af) https://graphemica.com/Я
"Я"
Код
send {0xD0}{0xAF}
, но такое не работает
Как быть с двойными указателями кода?

Ради интереса вместо HEX попробую использовать DEX коды timwhitlock.info символы ▬209яЯ‼��*4��☠1
//"Я" = HEX Code:042F UTF-8(hex): D0 AF | DEX Code:1071 UTF-8(dex) 208 175
//"4" = HEX Code:0034 UTF-8(hex): 34 | DEX Code:52 UTF-8(dex) 52
//"" = HEX Code:2564 UTF-8(hex): E2 95 A4 | DEX Code:9572 UTF-8(dex) 226 149 164
Символ "4":
Код
send {0x0034} //4 HEX оба варианта пишут 4
send [code]{0x034} //4 HEX оба варианта пишут 4
send {52} //4 DEX пишет 4.

Очень похоже, что DEX значения так же можно использовать.
Символ "╤"
Код
send {0x2564} // ╤ HEX  получаю в строке цифру 4 
send {9572} // ╤ DEX и снова получаю 4.

Зато руками набранное ALT + 209 вводит ╤ . Почему в этом случае не срабатывает прежний способ ввода HEX и DEX как с цифрами?
Буква "Я"
так же не удалось набрать, хоть её DEX Code одни цифры
А UTF-8 (dex)
Код
send {208}{175}
Отправляет в iGram (клиент для Telegram) {220088}{117755}, а
Код
send {208175}
просто выбил iGram
Ради интереса попробовал UTF-8(hex): D0 AF
Код
sendex {0xD0}{0xAF}
это на 1 добавляло громкость винды, скрипт был привязан к окну. (Получается, одно из значений - код кнопки громкости).
А с цифрами всё было просто.

И это еще не встретились 16-ричные значения.

Встретим их.
Возможно придется уточнить с левым или правым ALT набирать.
Проверю еще раз левый Alt+209 это "" Всё работает, но если в коде есть буква, то ничего не получалось - вводились буквы и набор кода пропадал!
На http://www.fileformat.info/tip/microsoft/enter_unicode.htm и в обсуждении superuser.com how-to-insert-any-unicode-character-using-the-unicode-hex-code-on-windows-word совет добавить кое-что в реестр. Возможно, по другому никак.
Пробую

Проба:
‼ После перезагрузки alt+203C ("+" тоже нужно нажимать). Результат "" (в тг это ярко красные знаки) Но! работает это не стабильно. Может ввестись последняя буква, станет - "С‼"
⛺️ (U+26FA = Alt+26FA Результат ⛺️, в Телеграм вводятся (Вот только в Chrome не работает, т.к. alt+F открывает меню)
�� (U+1F496) и набираем alt+1F496 . Результат ни-че-го.
То есть после правки реестра 100% гарантий нет. Бывает, что вводится только эмодзи с 1 буквой на конце

Выводы:
1. Альт-коды не лучшее решение, придется править реестр - само по себе не работает Не универсально, в разных приложениях могут сработать горячие клавиши
2. Виртуальные коды эмодзи не получается взять из DEX и HEX значений. Но раз средствами Windows они вводятся с виртуально клавиатуры, то должен быть способ.

Хотя может показаться, что этой темой я делаю мозг. Но с эмодзи просто запутался. Скорее не хватает базового понимая кодировок и ввода символов.
Прошу поделиться советами.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.7.2019, 20:28
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Я бы рекомендовал попробовать использовать say - там несколько иная схема отправки, но я не уверен (очень сильно) насчет возможности отправки не ascii кода. Т.е. через say сделать примерно так:
say †
Может быть пройдет. С блокнотом не получилось, но тем не менее что-то в него прилетело, т.к. спрашвивает сохранить ли изменения.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
JyT0
сообщение 1.7.2019, 20:33
Сообщение #3


*

Registred
Сообщений: 2
Регистрация: 1.7.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.359
Возраст: 25



как-то не вышло
say 2 шлет куча 2222 как и ожидалось. То есть работает.
say † ничего не делает.
Хотя сам iGram нормально отображает say † при копипасте, значит понимает символ.

Эти, не очень то нужные, эмодзи как то добавляют хлопот) Ох юникод.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.7.2019, 8:59
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



В пилоте есть возможность посылать виндовые api. Не могу найти оператор, думаю cirus подскажет. Там скорее всего получится и юникод отправить, но я когда возился не смог найти способа вязаться к окну - функции поиска окна там несколько другие. Необходимо структурку подсунуть, а ее создать корректно не получалось.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 2.7.2019, 17:43
Сообщение #5


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(JyT0 @ 1.7.2019, 20:13) *

Здравствуйте.
Задался вопросом ввода Emoji с помощью UOPilota в Telegram.

Не вижу трудностей для отправки сообщений с помощью шорт кода Эмодзи ТЕЛЕГРАМ
Делаем привязку к окну Telegram с помощью Ctrl+A
Код

kleft 5, 11  //координаты поля ввода
wait 1s
say текст :smiley:   //набираем строку текста с эмоджи
wait 3s
send217 {Enter}
end_script

Единственное правило при использовании шорт кода это смайлики разделять пробелами между собой и текстом.
Цитата

Например:
:herb: :bamboo: текст :zap: 123 :carrot:

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 3.7.2019, 20:01
Сообщение #6


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Что-то я не очень въехал как это должно работать
Прикрепленное изображение


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.7.2019, 12:06
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



может пробелов добавить?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 4.7.2019, 18:57
Сообщение #8


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(DarkMaster @ 4.7.2019, 12:06) *

может пробелов добавить?

до и после двоеточия? Не, не помогает.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 5.7.2019, 0:21
Сообщение #9


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Fors1k @ 3.7.2019, 20:01) *

Что-то я не очень въехал как это должно работать
Прикрепленное изображение

Код

set linedelay 0
left 846, 237
say :herb
say :
end_script

в принципе так тоже работает
Код

set linedelay 0
left 846, 237
say :herb::angry::confounded::triumph:
end_script

Не работает тогда когда тупо копировать вставить, не преобразует в эмоджи если использовать команд send send217 если отправить текст с командой сенд то получим вот такой текст(:HhEeRrBb:) почему-то двоятся буквы символы вводятся норм, sendex c телеграм не работает...на клавиши Ctrl+V в телеге делает скрин экрана может где-то не контачит простая вставка текста либо используется другой метод ввода эмоджи.
Если отправлять текст через посыл символов (SAY) то все работает. До конца еще не разобрался, возможное есть еще способы но пока только say
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.7.2019, 12:53
Сообщение #10


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



В общем случае say - это самый быстрый и корректный способ печати текста. Остальное больше для хоткеев и скилов.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 5.7.2019, 20:14
Сообщение #11


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(FREEON @ 5.7.2019, 0:21) *

Не работает тогда, когда тупо копировать вставить...
Если отправлять текст через посыл символов (SAY) то все работает

Вот это прикол. Реально, если руками набрать :herb: , то ноль эмоций, а если пилотом послать тоже самое, то появляется смайл. Интересно в чем фокус)


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 5.7.2019, 20:52
Сообщение #12


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Fors1k @ 5.7.2019, 20:14) *

Вот это прикол. Реально, если руками набрать :herb: , то ноль эмоций, а если пилотом послать тоже самое, то появляется смайл. Интересно в чем фокус)

Посимвольный ввод. А когда руками набираеш думает наверное что машина строчит.
Руками для преобразования в смайл нужно между :herb и : сделать небольшую паузу.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 0:26
Designed by Nickostyle