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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подтверждение критичного действия. Надо убедиться что набрано руками. 
:(
    Опции темы
Akina
Дата 15.6.2004, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



В программе выполняется некое весьма критичное действие. Требуется убедиться что пользователь сознательно хочет выполнения этого действия. Для этого вызывается функция, которая выводит на экран окно, содержащее TextBox, Label и Command. Label содержит инструкцию, в т.ч. в её теле достаточно длинную псевдослучайную строку (произвольная смесь больших и малых латинских букв). Для подтверждения намерения произвести действие пользователь должен набрать эту строку руками в TextBox и кликнуть кнопку (или там завершить ввод Enter-ом, что не суть важно). Есссно если строки не совпадают, функция возвращает CANCEL_ACTION, и нет проблем. Но вот при совпадении строк функция должна вернуть PERFORM_ACTION только в том случае, если весь ввод осуществлялся строго с клавиатуры. Т.е. при использовании Copy-Paste, DragDrop, экранной клавиатуры и пр. функция должна возвращать CANCEL_ACTION.
Вопрос - как? особенно с учетом того что возможны и стирания набранного текста, и выделение части его мышом, и переключение раскладки, и модификаторы (и Shift, и Caps/Num Lock), и еще груда всего - вплоть до переключения в другие приложения и обратно. И вообще - решаема ли задача?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
boevik
Дата 15.6.2004, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Akina, из Label же нельзя копировать. Так ему точно приходится набирать только ручками.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Akina
Дата 15.6.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



boevik
Главным образом видимо надо избежать программной обработки - а получить Caption несложно... впрочем получается что и эталонную строку надо прятать...
Просто сгенерил я счас тест-прогу, которая фиксирует вызовы всех методов TextBox-a, разбираюсь в том какие события и с какими параметрами возникают... но уж больно их до фига получается, особенно KeyDown/KeyUp... вот и думаю, мож кто такую или схожую задачу когда решал или с аналогичными вещами разбирался...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
boevik
Дата 15.6.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Akina, если програмно, то можно и caption прочитать и сгенерить нажатие клавы.
Одним словом, обойти можно.

А вот если вместо label, картинку показывать, да позаковырестее. Тогда прийдется только ручками.
Добавлено @ 17:31
Вот, типа такой картинки.
user posted image

Ни один OCR не разберет.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Akina
Дата 15.6.2004, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



boevik
мда-с... наверное все-таки действительно бред... бум мыслить...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
boevik
Дата 15.6.2004, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Akina, если надумаешь чего... поделись.



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Black_Star
Дата 15.6.2004, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Че там думать?
Код
Private n
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 Then
   n = n - 1
   If n < 0 Then n = 0
Else
   n = n + 1
End If
End Sub

типа того. Если юзер вставит, то n=1 or 2. Как когда. А ежели писать будет, то... n=Len(Label1.Caption)

withstupid.gif
PM ICQ   Вверх
Akina
Дата 16.6.2004, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Black_Star
Щазз! Ctrl-C+Ctrl-V посимвольно. Или ещё проще - нужное количество кликов мышом в текстбоксе.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Black_Star
Дата 16.6.2004, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мля... ну сделай проверку на нажатие клавиш через GetAsyncKeyState, если 1й вариант не устраивает. thumbs-up.gif

PM ICQ   Вверх
Naghual
Дата 16.6.2004, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

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



А вот вам еще идейка
Сохранять историю событий от текстбокса по величине равную длине контрольной строки.
Далее, при проверки, сравнивать вот Эту историю событий.

К примеру, при вставке, история будет содержать только события мыши и/или комбинацию Контрол-Инс и т.д. Есс-но, что это не совпадет с кейкодами нужных буковок.

Как считаете, сработает?



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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