#, я и 9 и 15 пробовал ковырять, но у меня так ни одного законченного приложения полезного не было.
Зато я написал на батниках (ndos) загрузчик, который умел бутять или Linux в loadlin, или один из разных DOS через файл их бутсектора... Загрузчик имитировал горячую перезагрузку, которую я дизассемблировал из novel dos (в ms dos и pc dos обработчик ctrl-alt-del был слишком сложный).
#, дело не в опасениях, int9 это аппаратное прерывание (IRQ1) и от операционной системы оно не зависит, а другие прерывания это API BIOS или операционной системы. У IRQ1 просто есть стандартный обработчик. А все переопределяющие приложения, как правило, запоминали текущее значение, выполняли свои действия и при необходимости вызывали предыдущий обработчик. Поэтому потенциально могло быть несколько разных приложений, которые клавиатуру обслуживали. Например, была популярная программа killer.com, которая по Ctrl-Alt-Del показывала менюшку, в которой текущую прогу можно было прибить (не всегда это было гарантированно безопасно, но для приложений без выкрутасов работало хорошо).
Может быть проблема даже на клиентской стороне. Недавно на довольно новом баребоне с WiFi от intel тестил под Linux - оно постоянно в dmesg фигачило что-то типа wifi reset при подключении к Microtik по 5GHz, на 2.4 всё ок. Не стал разбираться, ибо там у его пользователя всё равно винда есть, в которой всё ок. Думаю апгрейд со стокового ядра 5.15 из Ubuntu 22.04 до более нового помог бы.
Подобное может и на винде случиться, если дрова старые или глючные.
NikitaTim123, если там убунту то apt install firefox, если Centos то yum install firefox итд итп. Это же штатная операция - "поставить что-то из пакетов".
#, в DOS довольно распространённой практикой у подобных приложений было вешаться прям на int9 и дальше уже непонятно как действовать. Может, оно под частоту процессора адаптировалось и крутило какой-то цикл для управления скорости, но частоту таких "супербыстрых" процессоров определяло неправильно? Не знаю. Когда у меня появился Sound Blaster и Impulse Tracker, играть музыку на спикере стало совсем неинтересно.
mayton2019, было много проограмм на Pascal с модулем crt, в которых происходило на 0 на процессарах с частотой от 200 МГц. Ещё мне попадалась прога для исполнения музыки на PC Speaker с полифонией, в которой высота ноты регулировалась левым и правым Shift, она даже на Pentium 1 так быстро реагировала на Shift, что попасть в нужную высоту было очень тяжело...
Vadimayer, там местами вместо ' использовано `, это важное отличие.
Пароль может игнорироваться, если запустить mysqld с опцией skip-grant-tables, её точно не использовали? Ну и если пароль пустой, то наверное тоже может с любым пустить (не проверял).
sonsur, можно смотреть мак-адреса на портах. По этим макам вычислить их IP. Смотреть характерные признаки компов: их имя, куда с них ходят, какими юзерами на сервер логинятся...
grant all on *.* to `root`@`%` identified by 'пароль';
или более частный случай:
grant all on *.* to `root`@`127.0.0.1` identified by 'пароль';
При заходе без хоста идёт коннект через юникс-сокет юзером root@localhost, при заходе с хостом по сети юзером root@%, где % - это "любой хост" (причём на localhost по unix-сокету % не распространяется). С точки зрения mysql это два разных юзера и у них даже могут пароли отличаться.
Но в дальнейшем советую не использовать root для доступа к базам, а вместо этого создавать отдельного пользователя с доступом только к нужной базе. Например, если на сервере крутится несколько проектов, то, ломанув один, можно получить доступ к базам всех. Плюс у root есть слишком много прав, благодаря которым можно получить данные не только из базы, но и из других файлов и приложений.
chemdev, обычно они сталкиваются с тем, что внутри функции глобальная переменная недоступна и узнают про global, ну а потом начинают его пихать уже на автомате.
NQUAREx, насколько понимаю, там код написан сразу на python с реализацией того же протокола по аналогии.
"Через URL" нельзя, так как у Телеграма нет такого функционала. Раз нельзя, то либо осваивать функционал, который можно, либо может быть реализовать себе маленький сервис с HTTP для своих нужд, который позволяет свои частные задачи.
Какое из слов в фразе "message to delete not found" непонятно?
Не надо использовать тут global! Это будет приводить к проблемам при обращению к боту разными юзерами, при перезапуске бота итд итп. Кроме того, пользователь может успеть два раза нажать на кнопу до удаления сообщения, при обработке второго нажатия сообщения уже не будет.
Правильно брать id сообщения, в котором нажали кнопку, из call.message, точнее call.message.id.
Также для данного сценария (пользователь нажал на кнопку и получил меню следующего уровня) обычно сообщение не удаляют, а редактируют (bot.edit_message_text). Это ещё и лучше выглядит для пользователя, потому то при удалении и отправке нового сообщения между этими операциями успевает пройти некоторое время.
Зато я написал на батниках (ndos) загрузчик, который умел бутять или Linux в loadlin, или один из разных DOS через файл их бутсектора... Загрузчик имитировал горячую перезагрузку, которую я дизассемблировал из novel dos (в ms dos и pc dos обработчик ctrl-alt-del был слишком сложный).