Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Звездочки вместо пароля, Поле пароля для MsDOS 
:(
    Опции темы
Belirafor
Дата 23.10.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.8.2009

Репутация: нет
Всего: нет



Привет всем участникам форума. Пишу прототип командного процессора, снабженного механизмом защиты на уровне пользователя с применением метода паролей. Программа работает в среде MsDOS и

Мучает два вопроса:
1. Как можно заставить отображаться вместо символов звездочки (Строка пароля имеет тип string)
2. Как можно заставить программу игнорировать нажатия Enter, если поле login пустое (Поле login имеет тоже тип string).

Приветствуются только подсказки, готовых результатов просьба не выкладывать.
PM MAIL   Вверх
triclosan
Дата 23.10.2010, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



звездочки: стандарт не предусматривает такого поведения, используй сторонние либы, например conio.h.

клавиша ввода:
Код

if(getch()==13 && login.size()==0)
; // do nothing


PM MAIL   Вверх
Belirafor
Дата 24.10.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.8.2009

Репутация: нет
Всего: нет



Спасибо triclosan, осталось решить проблему с отображением пароля.
PM MAIL   Вверх
Belirafor
Дата 24.10.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.8.2009

Репутация: нет
Всего: нет



Неужели никто не знает как заменить символы звездочками при вводе в MsDOS?
PM MAIL   Вверх
Logree
Дата 24.10.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



замени обработчик прерывания 16h на время ввода пароля и\или редактируй видеопамять.


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Alca
Дата 24.10.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Цитата

замени обработчик прерывания 16h на время ввода пароля и\или редактируй видеопамять.

 smile 


--------------------
PM WWW ICQ Skype Jabber   Вверх
Belirafor
Дата 24.10.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.8.2009

Репутация: нет
Всего: нет



Цитата(Logree @  24.10.2010,  16:27 Найти цитируемый пост)
замени обработчик прерывания 16h на время ввода пароля и\или редактируй видеопамять. 


А что-нибудь по конкретней...
PM MAIL   Вверх
bsa
Дата 25.10.2010, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Belirafor, тебе уже сказали:
Цитата(triclosan @  23.10.2010,  22:18 Найти цитируемый пост)
используй сторонние либы, например conio.h.
Там есть kbhit и readkey (или что-то типа того), которые позволят это сделать. Если символ все равно отображается, то его можно будет тут же заменять на звездочку (для этого нужно вывести строку "\b*"). А если и это не подходит, то остается только один вариант:
Цитата(Logree @  24.10.2010,  17:27 Найти цитируемый пост)
замени обработчик прерывания 16h на время ввода пароля и\или редактируй видеопамять.


PM   Вверх
xvr
Дата 25.10.2010, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Используй для ввода (и редактирования) низкоуровневые функции посимвольного ввода (без эха) и вывода. (Они есть и в прерываниях DOS'а и BIOS'а). 
Ввод и редактирование строки делай сам.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.