Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как закрыть DOS-окно? [D3, Win95/98, WinME]


Cosmic ©   (2002-11-14 19:04:00) 

Я пытаюсь из программы нажадием кнопки закрыть левое досовское окно без лишних вопросов и предложений :) Так, чтобы убить - и всё, не видя никаких мессадж-боксов и т.п... Не получается :) Мастера, подскажите!


Cosmic   (2002-11-16 21:47:00) [1]

Закрывает почти идеально :) Проблема в том, что процесс убивается, а окно остается - приходится потом производить над "остатками окна" какое-то событие (ну, мышей провести, что ли) - тогда убивается и с экрана. Как этого избежать?


Александр Павлов   (2002-11-15 05:25:00) [2]

Поправочка:
проги, кот. не меняют заголовка DOS-консоли, что, в принципе, исправляется организацией небольшого цикла.


Александр Павлов   (2002-11-15 05:19:00) [3]

100% работоспособность не гарантирую, под моей 98 "прибивает" консольные проги на раз:

procedure TForm1.Button1Click(Sender: TObject);
var
OSI: TOSVersionInfo;
ClassName: string;
Title: string;
WND: HWND;
ProcessID: Integer;
ProcessHandle : THandle;
begin
OSI.dwOSVersionInfoSize := SizeOf(OSI);
GetVersionEx(OSI);

case OSI.dwPlatformID of
VER_PLATFORM_WIN32_WINDOWS: begin
ClassName := "tty";
Title := "Сеанс MS-DOS";
end;

{ VER_PLATFORM_WIN32_NT: begin
ClassName := "Ну, нет у меня ХР...";
Title := "Ну, нет у меня ХР...";
end;
}
end;

WND := FindWindow(PChar(ClassName), PChar(Title));
GetWindowThreadProcessID(WND, @ProcessID);
ProcessHandle := OpenProcess($0001, FALSE, ProcessID);
TerminateProcess(ProcessHandle,4);
end;


apay   (2002-11-15 01:03:00) [4]

2 Song
если там что-то есть, то MessageBox обязательно будет (если не править PIF. для корректного выхода в запущеной дос-программе вроде нужно перехватить int2F, номер ф-ии не помню (можно найти в MSDN)


Song   (2002-11-14 20:41:00) [5]

WM_SYSCOMMAND, SC_CLOSE


Наверх

Титульная страница Поиск, карта сайта Написать письмо