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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2015, 21:06   #1
WhatO_o?!
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 54
По умолчанию Аналог ShowWindow(handle, sw_hide)

Доброго времени суток, товарищи. Встретился на повестке дня я с станной странностью..

Началось всё с того, что мой товарищ попросил сделать ему "экстренную" сворачивалку для всяких приложений, а то мол приходят к нему клиенты, а у него всякие плееры и т. д. открыто

Элементарно! подумал я, всё что нужно - выцепить дескриптор окошка да отправить ему сообщение sw_hide

но не тут то было! радостные и веселые сворачивали мы всё, что можно.. И работало без нареканий... пока не наткнулись на клиент Aion'a (многопользовательская задротская игра, для тех, кто не в курсе).. Ну и вся проблема в том, что она просто игнорирует эту команду...

И как теперь скрывать - идей не очень много... я бы сказал, они стремятся к нулю... может кто чего подсоветует?)
Здесь могла бы быть ваша реклама
WhatO_o?! вне форума Ответить с цитированием
Старый 13.08.2015, 21:25   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

А SendMessage не пробовали? Попробуйте. Если не получится, то нужно лезть в параметры окон приложения.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 13.08.2015, 21:57   #3
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Цитата:
"экстренную" сворачивалку для всяких приложений
Win+M? Win+D?

Хотя TopLevel ToolWindow вроде не сворачивает, посмотрю ваш Aion'a. Как сейчас делаете, где код-то?
ResourceSpace вне форума Ответить с цитированием
Старый 13.08.2015, 21:57   #4
WhatO_o?!
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 54
По умолчанию

Даже нагуглить не могу, как через sendmessage скрыть окно... свернуть - получается, а скрыть - все говрят использовать ShowWindow...

Будь то хоть win+d, хоть win+m, в альт-табе да и на панели отчётливо виднеются гадские значки
делаем "на коленке", всего 2 строки пока что

в таймере получаю хэндл активного окна
memo1.Lines.Add(IntToStr(GetForegro undWindow));
после чего шлём сообщение
ShowWindow(StrToInt(edit1.Text), SW_HIDE);

Работает со всем, кроме этого гадкого окна...
Здесь могла бы быть ваша реклама

Последний раз редактировалось Stilet; 14.08.2015 в 10:39.
WhatO_o?! вне форума Ответить с цитированием
Старый 13.08.2015, 23:51   #5
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

WhatO_o?!, проверьте или узнайте, стоят ли на клиенте игры Aion какие-либо защиты, возможно они и мешают свернуть окно.

Еще попробуйте слать игре другие сообщения, и проверьте, будет ли она воспринимать их.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 14.08.2015, 00:00   #6
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 178
По умолчанию

так:
Код:
ShowWindow(handle,SW_FORCEMINIMIZE);
// или так
SetWindowPos(handle,0{или -2 но без флага SWP_NOZORDER},0,0,0,0,SWP_HIDEWINDOW or SWP_NOSIZE or SWP_NOZORDER);
Пробовали?

ps: 2-й способ скорей всего скроет в том числе и из панели задач, восстановить можно будет заменив флаг "SWP_HIDEWINDOW" на "SWP_SHOWWINDOW"

Последний раз редактировалось DIONISKA; 14.08.2015 в 00:26. Причина: upd
DIONISKA вне форума Ответить с цитированием
Старый 14.08.2015, 00:45   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А мож просто заюзать 2-й рабстол?
Окно игры поверх всего, да?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 14.08.2015, 09:22   #8
WhatO_o?!
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
WhatO_o?!, проверьте или узнайте, стоят ли на клиенте игры Aion какие-либо защиты, возможно они и мешают свернуть окно.

Еще попробуйте слать игре другие сообщения, и проверьте, будет ли она воспринимать их.
Нет, клиент пиратский, лаунчер запускает aion.bin, и никаких сторонних сообщений

Окно игнорирует
ShowWindow(StrToInt(edit1.Text),SW_ MINIMIZE);
ShowWindow(StrToInt(edit1.Text),SW_ HIDE); и т.п.
но
SendMessage(StrToInt(edit1.Text), WM_SYSCOMMAND,SC_MINIMIZE,0);
её спокойно сворачивает

Цитата:
Сообщение от DIONISKA Посмотреть сообщение
так:
Код:
ShowWindow(handle,SW_FORCEMINIMIZE);
// или так
SetWindowPos(handle,0{или -2 но без флага SWP_NOZORDER},0,0,0,0,SWP_HIDEWINDOW or SWP_NOSIZE or SWP_NOZORDER);
Пробовали?

ps: 2-й способ скорей всего скроет в том числе и из панели задач, восстановить можно будет заменив флаг "SWP_HIDEWINDOW" на "SWP_SHOWWINDOW"
ShowWindow(handle,SW_FORCEMINIMIZE) ; - 7 делфя не знает таких слов, как SW_FORCEMINIMIZE, попробовал с SW_SHOWNOACTIVATE - без реакции
SetWindowPos(handle,0,0,0,0,0,SWP_H IDEWINDOW or SWP_NOSIZE or SWP_NOZORDER); не дало результата

SetWindowPos(handle,-2 ,0,0,0,0,SWP_HIDEWINDOW or SWP_NOSIZE); ругается на -2


Цитата:
Сообщение от min@y™ Посмотреть сообщение
А мож просто заюзать 2-й рабстол?
Окно игры поверх всего, да?
Нет, окно самое что есть обычное, даже предусмотрен оконный режим, в котором можно его спокойно растягивать и сворачивать...
Здесь могла бы быть ваша реклама
WhatO_o?! вне форума Ответить с цитированием
Старый 14.08.2015, 09:34   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
7 делфя не знает таких слов, как SW_FORCEMINIMIZE
Код:
  {$EXTERNALSYM SW_FORCEMINIMIZE}
  SW_FORCEMINIMIZE = 11;
Цитата:
Нет, окно самое что есть обычное, даже предусмотрен оконный режим, в котором можно его спокойно растягивать и сворачивать...
Тебе надо убрать значок игры с панели задач?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 14.08.2015, 09:41   #10
WhatO_o?!
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 54
По умолчанию

увы, так тоже не скрылось
Да, убрать с панели задач и из альт-таба... Как раз то, что делает sw_hide...
Здесь могла бы быть ваша реклама
WhatO_o?! вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SW_HIDE не блокирует вывод программы Effort Помощь студентам 1 15.06.2011 22:06
ShowWindow(...., SW_SHOW) возвращает 0 Парсифаль Win Api 4 12.03.2010 04:21
Как узнать handle окна имея handle обного из его компонентов SeRhy Win Api 2 18.10.2009 19:31
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48