Alexey Grishanenko
2022.11.14

https://forum.ixbt.com/topic.cgi?id=24:50247 - обсуждение здесь.
http://forum.ru-board.com/topic.cgi?forum=5&topic=51055 - здесь модератор закрыл тему. Писать в основную тему по Telegram на ru-board не вижу смысла. Там вся нужная информация потеряется на 178 страницах с сообщениями о проблемах работы "самой-самой новой" версии Telegram на какой-то там ревизии Windows 11.


Telegam для Windows XP

Как известно, последняя работающая в Win XP версия Telegram - 1.8.15, появилась она 2019.10.07
Скачать ее, как и любую другую версию, проще всего здесь: https://github.com/telegramdesktop/tdesktop/releases

Простое решение для запуска новых версий - установка OneCoreAPI
https://github.com/Skulltrail192/One-Core-API-Binaries/releases
На данный момент самая новая версия 2.10.0 (5 октября 2022)
Я давно о нем слышал, но себе не устанавливал. Стабильности системе он не добавит. В описаниях каждой версии есть список проблем.
Примечательно что проблемы появляются даже с теми программами, которые нормально работают на голой Win XP.

Я решил поступить по-другому: сделать подмену некоторых dll на файлы из комплекта OneCoreAPI.

Самая большая засада оказалась в том, что все версии Telegram, новее 1.8.15, выдают ошибку, если в директории с Telegram.exe находится любая dll-ка. Причем, если заменить только kernel32.dll, то выдается сообщение:
Unknown DLL library [имя файла].dll found in the directory... и еще несколько строк. Предупреждение что это, вероятно, вирус.
Но после замены остальных файлов, выдается просто окошко Fatal Error. Я не сразу понял что это то же самое сообщение...
Просто решение - закинуть все dll в windows/system32
Но мне это решение не подходит, т.к. при необходимости что-то проверить с новыми dll, приходится перемещаться в директории с 2000+ файлов.
Хотел понять какой именно механизм работы этой "защиты". Скачал исходники. Думал найти текст сообщения с ошибкой и увидеть в какой процедуре (условно) он выводится.
Фигвам. Внутри Telegram.exe без проблем можно найти (кодировка UTF-16LE) примечательное слово "malicious", но в исходниках его просто нет.
При полной установке OneCoreAPI, такой ошибки нет. Так что нужна подмена еще какой-то dll.
Если кто понимает как это все работает - напишите.
Пошел другим путем. Создал рядом директорию Telegram_DLL и прописал ее в path. В архиве есть батник path_check_add.bat для добавления в path текущей директории, если кому-то лень делать это вручную.
Единственное неудобство - требуется перезагрузка компьютера, чтобы новый путь подхватился.

Прошелся почти по всем версиям от 1.9.3 до 4.2.4
Поддержка ID-64bit появляется в версии 3.1.0

И все бы хорошо, но в новостных каналах некоторые сообщения не выводятся. Вместо них видно сообщение:
This message is not supported by your version of Telegram. Please update to the latest version in Settings > Advanced,
or install it from https://desktop.telegram.org. If you are already using the latest version,
this message might depend on a feature that is not yet implemented.

Открылись эти сообщения только в версии 4.2.0
Не смог я увидеть в этих "проблемных" сообщениях ничего особенного. Единственное, что заметно сразу - маленькие значки с анимацией. Т.е. даже не смайлик, а еще меньше по размеру:
прыгающий восклицательный или мерцающий вопросительный знак, разворачивающийся конвертик или банальный мигающий красный кружок.
И из-за этой глупости, которую вполне можно было заменить на пустой квадратик, как это происходит в браузерах, если ссылка на картинку битая, приходится обновляться почти до самой последней версии.

В плане текстовых сообщений погонял 2 дня - все работает. Установил на второй компьютер - тоже запустился. Звонки еще не пробовал.

Была проблема с перетаскиванием файлов в Telegram. На drag-n-drop просто не было реакции. Решилось заменой kernel32.dll не на файл из OneCireApi, а из модифицированного Python, который допиливали для работы с youtube-dl на Windows XP. Вроде, он из ReactOS, но именно такой файл я найти в нем не смог (отталкиваясь от его даты).

Единственное неудобство - не появляется меню в трее. Сама программа по дабл-клику сворачивается и разворачивается, а меню нет. Решение найти не смог.
Причем, аналогичная проблема есть и при полной установке OneCoreApi. Сообщений об ошибках нет. 
Если же сделать подмену dll для Telegram 1.8.15, то меню есть. Могу лишь предположить что меню выводится новой функцией, а в OneCoreApi ее заменили заглушкой-пустышкой.
Установка пыржика Setting - Advanced - Show tray icon включает значок в трее и не дает программе полностью закрываться.
Но если все же требуется перезагрузить Telegram - приходится лезть в настройки, отключать значок и закрывать программу крестиком на окне.
