Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 13.01.2011, 20:58   #1
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
Стрелка Исправить код сворачивания всех окон

В интернете нашел данный код:
Код:
function MyCallback(Wnd: THandle;Param: integer): boolean; stdcall;
var
  style: longint;
  tsb, rabst: integer;
begin
  tsb:=FindWindow('Shell_TrayWnd', nil);
  rabst:=FindWindow('ProgMan', 'Program Manager');
  Result := Wnd <> 0;
  style:=GetWindowLong(wnd,GWL_EXSTYLE);
  style:=style and WS_EX_TOPMOST;
  if Result and IsWindowVisible(Wnd)and (not IsIconic(WND)) and (wnd<>tsb) and
  (wnd<>rabst) and (wnd<>FindWindow('Indicator',nil)) and
  (style<>WS_EX_TOPMOST)and(wnd<>form1.handle)then
  begin
    ShowWindow(Wnd,sw_hide);
    ShowWindow(Wnd,Param);
  end;
end;


procedure ShowAllWindows(Cmd: integer);
begin
  EnumWindows(@MyCallback,Cmd);
end;

ShowAllWindows(SW_SHOWMINIMIZED);
Но моя форма тоже сворачивается, как это исправить?
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.

Последний раз редактировалось niki2012; 14.01.2011 в 14:10.
niki2012 вне форума Ответить с цитированием
Старый 14.01.2011, 16:34   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 20.12.2010
Сообщений: 808
По умолчанию

form1.handle замените на Application.handle...
asmodey1 вне форума Ответить с цитированием
Старый 14.01.2011, 16:58   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Господи, что за извращение? Читаем статью "PanicButton". http://www.procoder.info/index.php?o...=63&Itemid=207 После прочтения и запуска вертаем себя с помощью Form1.Show.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.01.2011, 19:19   #4
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
По умолчанию

application.handle не помог...
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
niki2012 вне форума Ответить с цитированием
Старый 14.01.2011, 20:06   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 20.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от niki2012 Посмотреть сообщение
application.handle не помог...
А мне помог. Параметр запуска Cmd=2.
asmodey1 вне форума Ответить с цитированием
Старый 14.01.2011, 21:46   #6
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
По умолчанию

Всеравно сворачивает (не полностью, остается только полоска с названием формы и кнопки свернуть, закрыть)
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
niki2012 вне форума Ответить с цитированием
Старый 14.01.2011, 22:06   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,648
По умолчанию

Цитата:
Исправить код сворачивания всех окон
эмулируй нажатие Win+D

Код:
procedure HideAll;
begin
 keybd_event(vk_Lwin, 0, 0, 0);
 keybd_event(Ord('D'), 0, 0, 0);
 keybd_event(vk_Lwin, 0, KEYEVENTF_KEYUP, 0);
 keybd_event(ord('D'), 0, KEYEVENTF_KEYUP, 0);
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 14.01.2011, 22:09   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
эмулируй нажатие Win+D
Что и советовалось в 3-ем посте.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.01.2011, 22:18   #9
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
По умолчанию

Не думаю что это хорошая идея. Я пишу родительский контроль, который по истечению времени блокирует комп и требует ввести пароль (не за деньги, в смысле чтобы мог пользоваться только родитель). Сворачивание всех окон + отрубание эксплорера. Метод, указанный в первом (моем) посте меня устраивает, за исключением сворачивания моего приложения (а ведь надо еще в нем пароль вводить).
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
niki2012 вне форума Ответить с цитированием
Старый 14.01.2011, 22:29   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
который по истечению времени блокирует комп и требует ввести пароль
А зачем мучить сворачивание окон? Настроил пользователей, а потом написал прогу, в таймере по истечении времени которой будет стоять команда LockWorkStation
Это залочит комп под пользователя, чей сеанс. И родителям достаточно будет не говорить чаду пароль и чаще его менять. Ничего выдумывать не нуна - в винде все это есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поверх всех окон blackstersl Общие вопросы Delphi 6 05.08.2010 15:36
события разворачивания и сворачивания окон HotGod Общие вопросы Delphi 3 27.05.2010 14:43
Поверх всех окон delphin100 Общие вопросы Delphi 2 19.04.2008 19:00
Поверх всех окон Патрон Общие вопросы Delphi 1 18.04.2008 16:57
VB код сворачивания формы в трей, или просто свернуть sqvair Помощь студентам 4 04.01.2008 21:21