![]() |
активизация окна...
в произвольной dos программе
(пусть даже Norton Commander) вызываю любую другую windows-программу... по завершении которой остаюcь на рабочем столе... нужно щелкнуть мышкой по icon на панели,чтобы вернуть управление ... Что можно сделать для активизации родительского окна? (без рук...) ...masm... |
Послать окну сообщение, которое приведет к его активизации или воспользоваться вспомогательной функцией . В делфи это вроде ShowWindow() .
|
Все не так просто. Что бы поднять с помощью ShowWindow консольное окно нужно знать хендл консоли. И еще нужно отследить закрытие сторонней программы которая была запущена. Так что придеться немного напрячься.
Я бы сделал примерно так: Программу которую нужно запустить запускал бы с помощью CreateProcess что бы иметь PID порождаемого процесса. Потом в отдельном потоке или по таймеру отслеживал окончание порожденного процесса. После окончания отого процесса пробежался бы по верхнему уровню окон в Z-order (функция GetWindow) нашёл бы окно PID которого равен PID-у моей программы, вот его бы и активизировал спомощью ShowWindow. |
Чтобы получить дескриптор окна достаточно знать имя класса или заголовок .
И вообще такое объяснение вопроса явно не позволяет понять что проискодит и что нужно . Детский сад . Даже неясно о каким языке идет речь, а что это делфи я решил лишь из-за того, что именно "программисты" на этом языке задают подобные вопросы ;) |
2RaZer
>>Чтобы получить дескриптор окна достаточно знать имя класса или заголовок Точно, я о том и говорю. Консоли трудно отличить одну от другой. Например Win2000 они все класса "ConsoleWindowClass" а зоголовки могут иметь разные взависимости от того как программа стартует (если через Shortcut - имя экзешника, прямой запуск - полное имя экзешника, через Bat-файл - что то вроде "C:\WINNT\System32\cmd.exe" и т.п). |
Вот drstolik объявиться и объяснит что еще за dos программа, что за панель и что за родительское окно ...
|
| Часовой пояс GMT +4, время: 03:42. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.