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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 19: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 в 13:10.
niki2012 вне форума Ответить с цитированием
Старый 14.01.2011, 15:34   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

form1.handle замените на Application.handle...
asmodey1 вне форума Ответить с цитированием
Старый 14.01.2011, 15: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, 18:19   #4
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
По умолчанию

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

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

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

Цитата:
Исправить код сворачивания всех окон
эмулируй нажатие 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, 21: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, 21:18   #9
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
По умолчанию

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

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поверх всех окон 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 20:21