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

Вниз

Кто знает как закрыть все приложения Windows и вернуться к исходн   Найти похожие ветки 

 
programmerts.narod.ru   (2002-06-17 19:10) [0]

Мне нужно закрыть приложения и вернуться к исходному состоянию Windows, для дальнейшей работы.


 
Егоров Николай   (2002-06-18 04:45) [1]

Весьма Екстрэмальное закритие всяго:

PostMessage(HWND_Broadcast, WM_SYSCOMMAND,SC_CLOSE, 0);

а можно так:

procedure CloseAll;
var
WindowHandle : HWND;
buff: array [0..255] of char;

begin

WindowHandle := GetWindow(Handle, GW_HWNDFirst);
while WindowHandle <> 0 do begin
if (WindowHandle <> Application.Handle) and
IsWindowVisible(WindowHandle) and
(GetWindow(WindowHandle, GW_Owner) = 0) and
(GetWindow(WindowHandle, GW_Child) <> 0) and
(GetWindowText(WindowHandle, buff, SizeOf(buff)) <> 0)
then PostMessage(WindowHandle, WM_SYSCOMMAND, SC_CLOSE, 0);

WindowHandle := GetWindow(WindowHandle, GW_HWNDNext);
end;

application.terminate;
end;

Закрывает все приложения которые видны на таскбаре, те которые в трее не закрываются, а так же скрытые процессы...


 
serd_hhc ©   (2002-06-18 09:16) [2]

Перебираешь все окна. Закрываешь. Запускаешь "Explorer.exe" После лезешь в реестр, читаешь из ветви HKLM\Software\microsoft\Windows\CurrentVersion\Run\* и запускаешь. Вот и всё.


 
programmerts   (2002-06-20 18:12) [3]

А как сделать так, чтобы моё приложение не закрывалось.
Ставлю в onclose
Action:=canone;
Не помогает.
Заранее спасибо.


 
Song ©   (2002-06-21 09:14) [4]

...
(WindowHandle<>Application.Handle) and
(WindowHandle<>MainForm.Handle) ...

Я бы сделал через EnumWindows() чем перебирать окна вручную.


 
pupil   (2002-06-22 17:41) [5]

procedure CloseAll;
var
WindowHandle : HWND;
buff: array [0..255] of char;

begin

WindowHandle := GetWindow( Handle, GW_HWNDFirst);
while WindowHandle <> 0 do begin
if (WindowHandle <> Application.Handle) and
IsWindowVisible(WindowHandle) and
(GetWindow(WindowHandle, GW_Owner) = 0) and
(GetWindow(WindowHandle, GW_Child) <> 0) and
(GetWindowText(WindowHandle, buff, SizeOf(buff)) <> 0)
then PostMessage(WindowHandle, WM_SYSCOMMAND, SC_CLOSE, 0);

WindowHandle := GetWindow(WindowHandle, GW_HWNDNext);
end;

application.terminate;
end;

Этот код не работает на тексте выделенным жирным пишется ошибка!


 
Diamond Cat ©   (2002-06-23 01:09) [6]

процедуру-то объявить надо, или соответственно передавать параметр HANDLE или хоть указатель на него, хотя нет проще всего видимо так WindowHandle := GetWindow(Form1.Handle, GW_HWNDFirst);



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-3346
Cr@sh
2002-08-21 20:08
2002.09.02
Изменение картинки в b:TBitmap.


4-3664
prasaleff
2002-07-01 13:25
2002.09.02
Не всегда удается запустить другую программу через ShellExecute


1-3438
Лохматый
2002-08-20 14:47
2002.09.02
Работа с захваченным файлом


1-3367
c0pyc@t
2002-08-22 09:31
2002.09.02
Глюк с Enabled


7-3645
Alexander
2002-06-21 02:28
2002.09.02
Как мне применить темы Windows XP в окне, которое создано в файле