Как тонко проинформировать пользователя, его вход был получен - PullRequest
3 голосов
/ 21 января 2009

Я пишу DLL, которая автоматически вводится при загрузке в конкретном приложении. Поскольку я хотел бы запустить программу во время работы над ней, и мои пользователи могут захотеть загрузить программу без нее в определенных случаях (например, поиск ошибок), я иногда хочу предотвратить загрузку DLL. В настоящее время я делаю это, проверяя GetKeyState на VK_LCONTROL, VK_LSHIFT и VK_LMENU при загрузке, и если все не работает, я молча выгружаю себя. Однако загрузка программы может занять несколько секунд, чтобы увидеть, была ли загружена DLL или нет, поэтому я хочу проинформировать пользователей, когда мы выгружаемся. Я рассмотрел MessageBox, но это слишком разрушительно. Я пробовал MessageBeep, но, похоже, это ничего не изменило в моей настройке. В настоящее время я использую простой двойной звуковой сигнал (Beep, Sleep, Beep) для обозначения разгрузки, но это, вероятно, станет довольно раздражающим для моих коллег. Я также рассмотрел иконку в системном трее, но это может привести к большому количеству кода и возможной ошибке, в то время как я стремлюсь к минимальному уведомлению, чтобы не вводить никаких тонких ошибок.

Кто-нибудь еще знает какой-нибудь хитрый способ (желательно визуальный), чтобы сообщить пользователю, что его ввод был успешно получен?

Ответы [ 7 ]

4 голосов
/ 21 января 2009

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

Редактировать: добавлена ​​ссылка Джо, опубликованная в его совпадающем ответе. Спасибо, Джо! :)

2 голосов
/ 21 января 2009

Если у вашего приложения есть строка состояния внизу, вы можете поместить туда текст сообщения ...

1 голос
/ 21 января 2009

Рассматривали ли вы временное окно сообщений, которое закрывается само по себе?

http://www.codeguru.com/cpp/misc/misc/messageboxhandling/article.php/c203

0 голосов
/ 24 августа 2010

Две идеи:

  1. Переверни. Иметь визуальную индикацию, когда DLL загружена , а индикатор не показывает, что DLL выгружена Возможно суффикс в строке заголовка. Таким образом, вы можете сказать в любое время, а не только во время запуска.

  2. FlashWindowEx .

0 голосов
/ 21 января 2009
0 голосов
/ 21 января 2009

Измените заголовок окна, а затем измените его обратно. Затем вы можете увидеть изменения, даже если пользователь тем временем переместил Alt-Tabbed на какую-то другую программу, не отнимая у пользователя фокус.

0 голосов
/ 21 января 2009

Вы можете открыть окно с коротким сообщением и автоматически закрыть его снова через 0,5 секунды или около того. Это не требует взаимодействия с пользователем, поэтому я не думаю, что это очень разрушительно.

...