Как программно закрыть окно Windows

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

interalex1
Сообщения: 25
Зарегистрирован: 15 июн 2004, 12:25

Как программно закрыть не текущее окно Windows?
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

Пожалуйста, переформулируйте вопрос чтобы было понятно! Что значит текущее окно Windows? Если речь идет о каком-либо окне приложения, то алгоритм такой:
1) Найти окно (к примеру с помощью FindWindow API), получить дескриптор HWND.
2) Послать найденому окну WM_CLOSE или WM_DESTROY
*provided AS IS
interalex1
Сообщения: 25
Зарегистрирован: 15 июн 2004, 12:25

Ну, к примеру, я открыл окно1 "Командная строка". В командной строке запускаю какую-то программу (например, открываю документ Word). Этот документ появляется в другом окне2. Могу ли я из командной строки окна1 какой-то командой закрыть документ Word в окне2?
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Могу ли я из командной строки окна1 какой-то командой закрыть документ Word в окне2?
В WinXP есть команда taskkill, но она позволяет закрыть не окно, а процесс. Если это то, что нужно, вот пример использования (закрывает Winword):

Код: Выделить всё

taskkill /f /im winword.exe
interalex1
Сообщения: 25
Зарегистрирован: 15 июн 2004, 12:25

В Win2000 не идет. А может подскажете как хотя бы свернуть окно2 из командной строки (окно1)!? Т.е., в принципе, мне надо, чтобы программа в окне2 работала как будто "резидентно", она может быть свернута, но при этом я мог бы продолжать работать в окне1 (командная строка).
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Стандартной команды нет, но можно поступить проще: создать ярлык (shortcut) для программы 2 и установить в его свойствах минимизацию на запуск.

Другой вариант - самому написать утилиту командной строки, скрывающую заданное окно.
interalex1
Сообщения: 25
Зарегистрирован: 15 июн 2004, 12:25

Только что пробовал, почему-то не получается.
Может быть будет понятнее если я опишу все более конкретно.
У меня есть index.htm, в котором используется мойшрифт.ttf. Этот шрифт не установлен в папке шрифтов Windows (мне это и не надо, т.к. я не хочу устанавливать этот шрифт в систему - я хочу временно использовать этот шрифт для просмотра index.htm). Это возможно если я просто запускаю мойшрифт.ttf (в окне просмотра шрифтов). Пока это окно открыто (может быть и свернуто) - я могу просматривать index.htm, включающий мой шрифт, но не установленный в системе.
Моя задача прописать в start.bat запуск мойшрифт.ttf (в окне просмотра шрифтов) в свернутом виде, затем запуск index.htm, затем после закрытия index.htm - закрытие мойшрифт.ttf (в окне просмотра шрифтов).
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Ну это, конечно, очень кривой путь к цели :)
Не мучайся, оставь мыло и я тебе вышлю утилиту, устанавливающую шрифт в систему.
interalex1
Сообщения: 25
Зарегистрирован: 15 июн 2004, 12:25

Не могу поверить своему счастью. Уже несколько дней я мучаюсь над этой проблемой. interalex1@yandex.ru
Заранее спасибо.
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

отправил
Ответить