Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > свернуть чужое окно типа bsNone, bsDialog...


Автор: CompWorm 18.6.2008, 22:35
приветствую!
вопрос мой банальный, что даже стыдно спросить, однако не понимаю что я делаю не так...

пытаюсь запустить чужое приложение и свернуть/скрыть его примерно вот так

Код

    //запускаем приложение
    ShellExecute(Handle,'open',PChar('путь к программе'),nil,nil,SW_HIDE);


и приложение запускается в нормальном виде, а не в спрятаном.
поэтому я решил дополнить код:

Код

    //запускаем приложение
    ShellExecute(Handle,'open',PChar('путь к программе'),nil,nil,SW_SHOWDEFAULT);
    //находим окно и маскируем
    ShowWindow (FindWindow(nil,Pchar('заголовок искомого окна')), SW_HIDE);


не пашет...

само по себе окно запускаемого приложения не имеет кнопок "свернуть" и "фулскрин". нельзя его свернуть и кликнув в таск-баре винды, но можно свернуть щелкнув по кнопке "свернуть все окна" (хотя потом оно лихо выскакивает, чего не каснись на таск-баре smile ).

помогите плиз разобраться, что не так...

Автор: Alexeis 18.6.2008, 23:03
CompWorm, не уверен, но мне кажеться, что этот самый SW_HIDE просто шлет сообщение окну, а то его игнорирует. 

Автор: CompWorm 18.6.2008, 23:21
Alexeis, 
я поэкспериментировал еще и понял, что здесь имеется и моя тупость и загадка  smile 
тупость в том, "что между первой и второй перерывчик небольшой" надо было делать:

Код

    //запускаем приложение
    ShellExecute(Handle,'open',PChar('путь к программе'),nil,nil,SW_SHOWDEFAULT);

sleep (1000);      //          <-------- к примеру, так, но лучше 
                           //                      циклом искать окно, и как оно вылезет - прятать

    //находим окно и маскируем
    ShowWindow (FindWindow(nil,Pchar('заголовок искомого окна')), SW_HIDE);


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

но есть и загадка, почему ShellExecute с параметром SW_HIDE не срабатывает на первых парах...
возможно ты прав, и окно игноририрует по каким-то причинам это сообщение при старте, но не совсем ясно, почему потом оно слушается SW_HIDE...  smile 

Автор: THandle 19.6.2008, 01:16
CompWorm, во время юзанья поиска нашел такой вот пост:

http://forum.vingrad.ru/index.php?showtopic=50517&view=findpost&p=395747

Автор: CompWorm 21.6.2008, 12:48
+1
вопрос решен. 
Alexeis, THandle, большое вам спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)