Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 23:26   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Монопольный контроль экрана приложением

Много перечитал статей, касающихся директ икс,опен гл, да и просто таких, где выставляется свойство формы formstyle в значение fsStayOnTop и fsmaximized (или как-то так), но ни одна из методик не дает того, что надо. Хочется сделать так, чтобы максимизированное окно (когда оно активно) при нажатии клавиш alt+Tab не показывало меню пуск. Возможно ли такое сделать?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 05.10.2010, 23:39   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.FormStyle := fsStayOnTop;
  Form1.BorderStyle := bsNone;
  Form1.WindowState := wsMaximized;
end;
Так пойдёт?
Код:
даже вот так:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.BorderStyle := bsNone;
  Form1.WindowState := wsMaximized;
end;
Только что тестил и работает...

Последний раз редактировалось SalasAndriy; 05.10.2010 в 23:41.
SalasAndriy вне форума Ответить с цитированием
Старый 05.10.2010, 23:46   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

SalasAndriy, спасибо за помощь, но вот это не работает, даже без проверки сейчас могу сказать, потому, что так я тоже пробовал. Мой первый пост.
Цитата:
даже вот так:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.BorderStyle := bsNone;
Form1.WindowState := wsMaximized;
end;
В этом режиме работает Alt+Tab
Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.FormStyle := fsStayOnTop;
Form1.BorderStyle := bsNone;
Form1.WindowState := wsMaximized;
end;
В этом режиме, он тоже работает, только не так как надо, а почти так как надо... При свертывании, а точнее попытке это сделать, появляется меню пуск. Да и Ссылку делать на Form1 не обязательно, ведь процедура приватная... Есть ещё идеи, как провернуть подобное?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 05.10.2010 в 23:50.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 06.10.2010, 00:02   #4
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

ааа, так вам нужно чтобы при нажатии на кнопке Win не появлялось меню пуск? Ну можно попробовать отлавливать нажатие этой кнопки и скрывать меню пуск... Найдите его через FindWindow и скрывайте... или даже таймером...

Может єто тоже подойдёт
Как отключить комбинацию Alt+Tab:

Отключение клавиши Win:
Цитата:
На некоторых современных клавиатурах присутствует клавиша Windows (как правило, логотип-флажок Майкрософт). Некоторым пользователям она мешает при быстрой печати. Чтобы отключить ее, нужно в реестре найти ключ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\Control\Keyboard Layout. Создайте новый двоичный параметр, озаглавив его Scancode Map и присвойте ему значение 00 00 00 00 00 00 00 00 03 00 00 00 00 00 5B E0 00 00 5C E0 00 00 00 00.
И отошлите системе сообщение что вы вносили данные в реестр чтобы обновилась...
SalasAndriy вне форума Ответить с цитированием
Старый 06.10.2010, 00:05   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

SalasAndriy, ненене, опять не то)))) Как раз-таки отключать это мне нельзя)), они должны работать. Нужен другой способ... Можно же ведь как-то даже если не с помощью свойств формы, а например OGL или DiretcX захватить полностью экран с невозможностью сбросить с переднего плана мою максимизированную форму без появления пуска, как в предыдущих ситуациях. Не подумайте ничего непристойного, я не порно-баннер пишу.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 06.10.2010 в 00:08.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 06.10.2010, 08:52   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 WindowState:=wsMaximized;
 RegisterHotKey(Handle,0,MOD_ALT,VK_TAB);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 UnregisterHotKey(Handle,0);
end;
Сойдет такой финт ушами?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.10.2010, 11:55   #7
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Stilet, у меня работают клавиши альт+таб, при запуске приложения, я так понял, что вы их отключаете на созданное окно, или нет? Мне нужно, что бы окно, запущенной программы занимало всю область экрана, позволяя функционировать системе, как нужно, как будто этого окна нет, а насколько я знаю, то в таком режиме можно переключаться на окна других приложений, что бы их активировать.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 06.10.2010, 12:03   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно узнать цель этого всего?
может есть иной метод.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.10.2010, 13:00   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я так понял, что вы их отключаете на созданное окно, или нет?
Не отключаю, а регистрирую как глобальные, таким образом перехватывая их обработку на себя но не обрабатывая. Это такой а-ля хук на клавиатуру.

Цитата:
позволяя функционировать системе, как нужно, как будто этого окна нет,
А вот теперь поподробнее зачем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.10.2010, 13:03   #10
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Пепел Феникса, ну вообще хочу весь экран закрасить каким-либо цветом, но чтобы контроль над системой не был задействован - т.е. она должна работать как работала, так сказать в фоновом режиме, чтобы по клику мыши срабатывало окно, что находится под закрашенной областью и т.д. Кажется бессмысленным действием=) У меня много таких безумных идей.))
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишет что монопольный доступ, на других ПК все нормально - Delphi+Access N!ckeL БД в Delphi 3 29.07.2010 08:24
Получение GET запроса приложением shkurkin Работа с сетью в Delphi 3 09.07.2009 08:24
помогите с приложением Proks Общие вопросы C/C++ 1 27.06.2009 19:20
ассоциация файлов с приложением TaTT DoGG Общие вопросы .NET 3 15.03.2009 18:21