Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Кто знает как закрыть все приложения 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-3453
DeepProg
2002-08-20 15:32
2002.09.02
Сделано или нет?


3-3319
SerVS
2002-08-08 00:52
2002.09.02
Ошибка при подключении к IB


14-3622
SkyQuakeR
2002-08-08 15:31
2002.09.02
Нужен массив TImage!!!


8-3530
mari_ra
2002-04-24 18:23
2002.09.02
Как вывести BMP на панель?


1-3466
MMarat
2002-08-20 15:53
2002.09.02
mailto:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский