Быстрый поиск
Введите фрагмент названия статьи для поиска
Таймер в консольном приложении
29.01.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Таймер в консольном приложении
Продолжаем раскрывать возможности консоли. Сегодня это будет выполнение действий через определенные интервалы, то есть, проще говоря, таймеры. В некоторых интернетах всплывает информация, что, мол, таймеры в консольных приложениях не поддерживаются или для этого надо городить какие-то жуткие конструкции типа отдельных потоков с проверкой времени. На самом деле консоль прекрасно работает с функцией SetTimer, только надо ее, как говорится, правильно готовить.
Читать статью целиком »
Просмотров: 1375 | Комментариев: 2
Обработка событий в консоли
26.01.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Обработка событий в консоли
В одной из предыдущих статей я уже рассказывал об обработке нештатных ситуаций консолью. А как у консоли обстоят дела со штатными? Оказывается, не намного хуже, чем у оконных приложений. Окно консоли может обрабатывать не только клавиатурный ввод, но и операции с мышью, установку и потерю фокуса окна, а также работу с системным меню.
Читать статью целиком »
Просмотров: 1403 | Комментариев: 2
Ввод пароля в консоли
01.07.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ввод пароля в консоли
Не знаю как вам, а мне очень не нравится метод ввода пароля в никсовой консоли. Введенные символы не показываются даже замаскированными, ввод не реагирует на вставку пароля из буфера обмена, а главное, нельзя удалять ошибочно введенный символ. Я понимаю, безопасность, все дела, но неудобно же! И решил я сделать свой вариант ввода пароля для консольных приложений. Чтобы и "звездочки" показывались, и вставка работала, и символы можно было удалять. Вот что у меня получилось.
Читать статью целиком »
Просмотров: 1828 | Комментариев: 4
Получение данных из консольного окна другого приложения
02.11.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter
Мы уже умеем перехватывать ввод и вывод консольных приложений, но этот способ работает только для тех процессов, которые мы сами запустили. Но иногда надо получать информацию из консольных приложений, которые уже были запущены в системе или могут быть запущены в дальнейшем, но не нами. А еще бывают консольные приложения, вывод которых невозможно перенаправить и, соответственно, невозможно получить описанным ранее способом. Для них также придется использовать способ из этой статьи.Для начала как всегда несколько структур, которые изначально не описаны в FASM. Они нам понадобятся для работы с консольным окном:
Code (Assembler) : Убрать нумерацию
- struct COORD
- X dw ?
- Y dw ?
- ends
- struct SMALL_RECT
- Left dw ?
- Top dw ?
- Right dw ?
- Bottom dw ?
- ends
- struct CONSOLE_SCREEN_BUFFER_INFO
- dwSize COORD
- dwCursorPosition COORD
- wAttributes dw ?
- srWindow SMALL_RECT
- dwMaximumWindowSize COORD
- ends
Читать статью целиком »
Просмотров: 1991 | Комментариев: 0
Перехват Ctrl+C и Ctrl+Break в консольных программах
29.03.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter
Перехват Ctrl+C и Ctrl+Break в консольных программах
В отличие от оконных приложений, у консольных программ не так много возможностей по обработке разных нештатных ситуаций, например, внепланового завершения работы. Это может быть нажатие комбинаций Ctrl+С, Ctrl+Break или закрытие окна консоли. Правильно написанное приложение должно уметь обрабатывать подобные ситуации и корректно завершать работу, то есть успеть сохранить какие-то промежуточные данные, освободить занятые ресурсы или уведомить пользователя, что его действия контрпродуктивны.
Читать статью целиком »
Просмотров: 3540 | Комментариев: 3