Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мессага поверх окон чужих приложений... 
V
    Опции темы
Crash512
Дата 17.12.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пишу программу для администрирования компьютерного зала... Я знею, что таких прог уже десятки, но мне платят за исходник=) Столкнулся со следующей проблемой...

Проблема такая: нужно сделать так, чтобы сообщение (просто текст) выводилось поверх всех окон (включая игры) на пару секунд.

Видел подобную фишку в одной админской проге для клуба. Сообщение большими красными буквами выводилось вверху экрана. Сообщение моргало около 2х секунд, и пропадало... Надо сделать что-то подобное, но не представляю как...

Помогите разобраться!
PM MAIL ICQ   Вверх
Anikmar
Дата 17.12.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Думаю тут без DirectX (или чего там еще) не обойтись - много игрух весьма критично относятся к смене расширения и режима работы экрана - например у меня X3 начисто слетает, если аська свое окошко выкидывает...

Это сообщение отредактировал(а) Anikmar - 17.12.2006, 13:25
PM MAIL ICQ   Вверх
Crash512
Дата 17.12.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Жесть... А чего же делать?.. Это важная функция для заказчика... Для меня она является самой сложной=)
PM MAIL ICQ   Вверх
Anikmar
Дата 17.12.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



1 Вариант - доверится виндам и размещать окошко StaOfTop - посмотреть что будет
2 Вариант более сложный - сначала определять в каком режиме находится экран и действовать по обстоятельствам. Если текущий режим не страдает экзотикой - то выводить стандартными методами, если нет - то уже думать
PM MAIL ICQ   Вверх
codelord
Дата 17.12.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



не знаком DX но нет ли такой возможности из буфера видюхи забрать картинку
переделать ее и вернуть назад. Лучше  обратиться в сооотв. раздел. 


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Crash512
Дата 17.12.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А больше никаких возможностей?..
PM MAIL ICQ   Вверх
codelord
Дата 17.12.2006, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



Вот придумал сообразил такой вариант.
таймер надо выствить эдак на 100мсек:
никуда не денутся увидят smile
Код

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 TCanvas * DeskTop = new TCanvas;
if (DeskTop)
        {
        DeskTop->Handle = GetDC(HWND_DESKTOP);
        DeskTop->Brush->Style = bsClear;
        DeskTop->Font->Size = 36;
        DeskTop->Font->Color=(TColor)RGB(255,0,0);
        DeskTop->Font->Style = TFontStyles() << fsBold;
        DeskTop->Font->Name = "Lucida Console";
        DeskTop->TextOut(1,1,"Ваше время заканчивается через 5 минут");
        ReleaseDC(0, DeskTop->Handle);
        }
delete DeskTop;
}


Добавлено @ 23:13 
а обновлять сообщение нужно по любому т.к. игра как правило около 60 кадров в сек обновляет экран..


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Anikmar
Дата 18.12.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Не прокатит. Это сообщение будет выдаваться на стол... А игруха будет висеть над ним. Надо выдавать в окно игрухи либо поверх всех.
PM MAIL ICQ   Вверх
codelord
Дата 18.12.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



Цитата(Anikmar @  17.12.2006,  20:07 Найти цитируемый пост)
Не прокатит. Это сообщение будет выдаваться на стол... А игруха будет висеть над ним. Надо выдавать в окно игрухи либо поверх всех

а ты попробуй.
а поверх всех не пойдет, игры вываливаются нафиг, CS точно.


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Anikmar
Дата 18.12.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



codelord,  Вы меня оспариваете или соглашаетесь? Я говорю Не прокатит. А вы?
PM MAIL ICQ   Вверх
Crash512
Дата 18.12.2006, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



codelord

Спасибо! Очень выручил!=))
PM MAIL ICQ   Вверх
Anikmar
Дата 18.12.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Некторое время назад я был владельцем сети компьютерных клубов. Я знаю специфику работы в них и специфику характера геймеров.
Если вам поставили задачу именно так - мой совет переубедить заказчика, что такой функционал не нужен.

Аргументы:
Если это компьютерный клуб - туда ходят люди постоянные и любящие именно этот клуб. Если он зибились на пару ящиков пива, а вкритический момент у них вылетает игруха из-за админ-автомата и они не получают свой выигрышь - они больше в клуб не придут.

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

Выводы:
Не надо вмешиваться в игровой процесс геймера - это вредно влияет на его психику - дальше на его отношение к к лубу - дальше на бабло хозяина. Напоминать надо вежливо.

Решение:
1. Можно поставить сигнализацию у каждого компа с красной лампочкой, которая будет мигать при приблежении к порогу отключения. - Подключаем к порту и программируем резидента. Затраты примерно 30 уе на пост плюс программеру

2. Можно поставить громкую связь

3. Наилучшее на мой взгляд. Дать *%*?%: админам, чтобы им было не лень пойти и выгнать геймера с места (ВЕЖЛИВО), а вот на посты поставить маленького резидента - лога, который определяет - использовался комп или нет в этот момент времени. Дальше суммируем - и отдаем заказчику еженедельный отчет. А он пусть сам смотрит - нагревают его админы или нет.
PM MAIL ICQ   Вверх
Crait
Дата 18.12.2006, 03:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Можно ещё формировать сообщение средствами звукового вывода.
PM MAIL   Вверх
witex
Дата 18.12.2006, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Звук отвлекает!

А вот на счёт подсказок.
Год назад, я работал  в одном копьютерном клубе. Так там, сразу поверх любых окон всегда наверху небольшой квадратик всегда был! И показывал, сколько осталось юзать пользователю комп. И там спокойной можно было подойти к админу и добавить время!
Допусти табличка зелёного цвета пока вемя больше 10 минут. жолтая когда больше 5 и красная когда уже остаёться 5 минут и меньше.
Самое удобное, не отвлекает ни кого и всем удобно. 
Так что луше постоянно маленькую мессагу сверху держать, чем выпрыгивала бы мессага.
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
Anikmar
Дата 18.12.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А если этот квадратик закроет нужную информацию? Игрухи разные бывают...
Это конечно лично мое мнение, но любая лишняя информация будет мешать игровому процессу. Админский модуль на геймерской станции должен быть, но он не должен никоим образом мешать геймеру.
На рабочем месте админа должно все считаться, а вот в обязанности админа входит предупреждение геймера о заканчивающемся времени.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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