Главная страница
    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
3-3231
chistyakov
2002-08-09 16:40
2002.09.02
Десятичное число в dbf


14-3569
Бунтовщик
2002-08-05 20:42
2002.09.02
А можно ли успеть за тех прогрессом?


1-3372
EugenCFG
2002-08-20 14:51
2002.09.02
Как динамически создать Edit...


14-3608
Извращенец
2002-07-30 15:50
2002.09.02
WinMe


1-3405
MJH
2002-08-22 11:49
2002.09.02
Своство компонента типа строка, но с выпадающим списком...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский