IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   активизация окна... (https://www.imho.ws/showthread.php?t=20917)

drstolik 19.01.2003 16:33

активизация окна...
 
в произвольной dos программе
(пусть даже Norton Commander)
вызываю любую другую windows-программу...
по завершении которой остаюcь на рабочем столе...
нужно щелкнуть мышкой по icon на панели,чтобы вернуть
управление ...
Что можно сделать для активизации родительского окна?
(без рук...) ...masm...

RaZEr 19.01.2003 19:17

Послать окну сообщение, которое приведет к его активизации или воспользоваться вспомогательной функцией . В делфи это вроде ShowWindow() .

alexey_ma 19.01.2003 20:21

Все не так просто. Что бы поднять с помощью ShowWindow консольное окно нужно знать хендл консоли. И еще нужно отследить закрытие сторонней программы которая была запущена. Так что придеться немного напрячься.
Я бы сделал примерно так:
Программу которую нужно запустить запускал бы с помощью CreateProcess что бы иметь PID порождаемого процесса. Потом в отдельном потоке или по таймеру отслеживал окончание порожденного процесса. После окончания отого процесса пробежался бы по верхнему уровню окон в Z-order (функция GetWindow) нашёл бы окно PID которого равен PID-у моей программы, вот его бы и активизировал спомощью ShowWindow.

RaZEr 19.01.2003 20:47

Чтобы получить дескриптор окна достаточно знать имя класса или заголовок .

И вообще такое объяснение вопроса явно не позволяет понять что проискодит и что нужно . Детский сад . Даже неясно о каким языке идет речь, а что это делфи я решил лишь из-за того, что именно "программисты" на этом языке задают подобные вопросы ;)

alexey_ma 19.01.2003 21:33

2RaZer
>>Чтобы получить дескриптор окна достаточно знать имя класса или заголовок
Точно, я о том и говорю. Консоли трудно отличить одну от другой. Например Win2000 они все класса "ConsoleWindowClass" а зоголовки могут иметь разные взависимости от того как программа стартует (если через Shortcut - имя экзешника, прямой запуск - полное имя экзешника, через Bat-файл - что то вроде "C:\WINNT\System32\cmd.exe" и т.п).

RaZEr 19.01.2003 21:40

Вот drstolik объявиться и объяснит что еще за dos программа, что за панель и что за родительское окно ...


Часовой пояс GMT +4, время: 03:42.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.