Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свернулось, но не разворачивается!!!??? 
:(
    Опции темы
Nicholas
  Дата 26.10.2004, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Моя прога находит список всех видимых окон в системе и сворачивает их ( CloseWindow(Wnd); ), а некоторые окна не могу развернуться почемуто, например если у меня «Подключение к удаленному рабочему столу» после сворачивания уже не разворачивается????????????

:stena

PM MAIL ICQ   Вверх
Nicholas
Дата 28.10.2004, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



:offtopic Че все тупые или вопрос тупой????
PM MAIL ICQ   Вверх
Medved
Дата 28.10.2004, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Цитата(Nicholas @ 28.10.2004, 12:19)

Че все тупые или вопрос тупой????

Модератор: Вам никто не обязан отвечать. Здесь занятые люди у которых полно своих проблем. А такие высказывания являются оскорбительными в отношении других участников форума, и нарушают его правила. Это не первое мое Вам замечание. Если будете продолжать в том же духе. придется выносить Вам предупреждения. 10 предупреждений - бан на 1 месяц.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 28.10.2004, 12:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Pegas @ 28.10.2004, 12:11)

Модератор: Вам никто не обязан отвечать. Здесь занятые люди у которых полно своих проблем. А такие высказывания являются оскорбительными в отношении других участников форума, и нарушают его правила. Это не первое мое Вам замечание. Если будете продолжать в том же духе. придется выносить Вам предупреждения. 10 предупреждений - бан на 1 месяц.


М'даааааааааа
Интересно и когоже я обидел!!!!? :angry:
  Вверх
Medved
Дата 28.10.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



А вы почитайте правила! Потом еще раз перечитайте, и это все еще в цикле....

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


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Pathfider
Дата 28.10.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

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



Цитата
Моя прога находит список всех видимых окон в системе и сворачивает их ( CloseWindow(Wnd); ), а некоторые окна не могу развернуться почемуто, например если у меня «Подключение к удаленному рабочему столу» после сворачивания уже не разворачивается????????????

По известному хендлу процесса попробуй через WinAPI раскрыть окно.
Добавлено @ 16:19
Nicholas А еще лучше приведи код!
--------------------
Trust is a weakness
PM MAIL   Вверх
Nicholas
Дата 30.10.2004, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Pathfider @ 28.10.2004, 16:15)

Nicholas А еще лучше приведи код!



Код

Procedure GetAndMinVisibleWindows;
Var
 Wnd : hWnd;
 buff,buff1: Array [0..127] Of Char;
begin
Wnd := GetWindow(Form1.Handle, gw_HWndFirst);
While Wnd <> 0 Do
 Begin {Hе показываем:}
 If (Wnd <> Application.Handle) and {-Собственное окно}
 IsWindowVisible(Wnd) and {-Hевидимые окна}
 (GetWindow(Wnd, gw_Owner) = 0) and {-Дочернии окна}
 (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) then
   Begin
   GetWindowText(Wnd, buff, sizeof(buff));
   GetClassName(Wnd,buff1,sizeof(buff1));
     If buff <> 'Program Manager' then
   CloseWindow(Wnd);
   end;
 Wnd := GetWindow(Wnd, gw_hWndNext);
 end;  {Не показываем}
end;


:stena
PM MAIL ICQ   Вверх
Pathfider
Дата 30.10.2004, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

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



Nicholas Как я понял, ты пытаешься свернуть прогу Program manager. Попробуй использовать ShowWindow(Wnd, SW_HIDE) для скрытия окна и ShowWindow(Wnd, SW_RESTORE) для возврата окна в предидущее положение.
--------------------
Trust is a weakness
PM MAIL   Вверх
Nicholas
Дата 1.11.2004, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Pathfider @ 30.10.2004, 19:19)

Nicholas Как я понял, ты пытаешься свернуть прогу Program manager. Попробуй использовать ShowWindow(Wnd, SW_HIDE) для скрытия окна и ShowWindow(Wnd, SW_RESTORE) для возврата окна в предидущее положение.


Нет, ты не понял! У меня все сворачивается, но не разварачивается!!!!

:qstn
PM MAIL ICQ   Вверх
_hunter
Дата 3.11.2004, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



вот этот кусок кода и покажи. обычно имеет смысл показывать неработающее ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Nicholas
Дата 13.11.2004, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(_hunter @ 3.11.2004, 12:05)
вот этот кусок кода и покажи. обычно имеет смысл показывать неработающее ;)


Специально для Охотника объясняю: Я показал код который сварачиват программы на панель задач, после чего я мышкой кликаю на панель задач и развернуть ничего не могу (ну только некоторые приложения)!

smile smile
PM MAIL ICQ   Вверх
Alex
Дата 13.11.2004, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Попробуй так:

Код

Procedure GetAndMinVisibleWindows;
Var
 Wnd : hWnd;
 buff,buff1: Array [0..127] Of Char;
begin
Wnd := GetWindow(Form1.Handle, gw_HWndFirst);
While Wnd <> 0 Do
 Begin {Hе показываем:}
 If (Wnd <> Application.Handle) and {-Собственное окно}
 IsWindowVisible(Wnd) and {-Hевидимые окна}
 (GetWindow(Wnd, gw_Owner) = 0) and {-Дочернии окна}
 (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) then
   Begin
   GetWindowText(Wnd, buff, sizeof(buff));
   GetClassName(Wnd,buff1,sizeof(buff1));
     If buff <> 'Program Manager' then
   ShowWindow(Wnd, SW_MINIMIZE);
   end;
 Wnd := GetWindow(Wnd, gw_hWndNext);
 end;  {Не показываем}
end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Girder
Дата 13.11.2004, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



Nicholas без обид... в будушем твои топики с грубостью к остальным участникам... будут удаляться на корню! smile

PS: Проблема в твоем коде... это неправильный выбор окна приложения для закрытия... smile и при этом недостаточно чтоб окно было на верхнем уровне!

Лови код(В строчке for i:=(Length(lh)-2) downto 0 do ошибок нет smile ! Написанно так как и должно быть smile !):
Код
procedure TForm1.Button1Click(Sender: TObject);
var h,h1:THandle;
   lh:array of THandle;
   i:integer;
   pID,Win_pID:Cardinal;
begin
pID:=0;
GetWindowThreadProcessId(Handle,@pID);
h1:=Handle;
repeat
 h:=GetWindow(h1,GW_OWNER);
 if h<>0 then h1:=h;
until h=0;
h:=GetWindow(h1,GW_HWNDFIRST);
h1:=findwindow('Shell_TrayWnd', nil);
while (h<>0) do
 begin
  if (IsWindowVisible(h)=true)and(IsIconic(h)=false)and(h<>h1) then
   begin
    i:=Length(lh);
    SetLength(lh,i+1);
    lh[i]:=h;
   end;
  h:=GetWindow(h,gw_hWndNext);
 end;
for i:=(Length(lh)-2) downto 0 do
 begin
  Win_pId:=0;
  GetWindowThreadProcessId(lh[i],@Win_pID);
  if (Win_pID<>0)and(Win_pID<>pID)and(IsWindowVisible(lh[i])=true) then
   ShowWindow(lh[i],SW_MINIMIZE);
 end;
SetLength(lh,0);
end;


Удачи.

Это сообщение отредактировал(а) Girder - 13.11.2004, 15:08


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

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

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


 




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


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

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