Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.02;
Скачать: CL | DM;

Вниз

Как закрыть DOS-окно?   Найти похожие ветки 

 
Cosmic   (2002-11-14 19:04) [0]

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


 
Song ©   (2002-11-14 20:41) [1]

WM_SYSCOMMAND, SC_CLOSE


 
apay ©   (2002-11-15 01:03) [2]

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


 
Александр Павлов ©   (2002-11-15 05:19) [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;


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.01.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
3-1764
pilot
2002-12-11 15:41
2003.01.02
Сравнение баз


3-1763
yaJohn
2002-12-11 13:13
2003.01.02
Как заставить TClientDataSet перефильтроваться


1-1804
d_oleg
2002-12-20 13:31
2003.01.02
название языка текущей раскладки клавиатуры


8-1841
Сергей.
2002-09-16 15:35
2003.01.02
Как установить рисунок на рабочий стол?


1-1771
stone
2002-12-20 09:43
2003.01.02
Время выполнения потока (TThread)