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

Вниз

Закрыть приложение !   Найти похожие ветки 

 
SPIRIT ©   (2004-01-29 08:13) [0]

вот таким образом я полочая список запущенных приложений ... а как их всех закрыть ?


procedure TForm1.Button1Click(Sender: TObject);
VAR  Wnd : hWnd;  
buff: ARRAY [0..127] OF Char;
begin  
ListBox1.Clear;  
Wnd := GetWindow(Handle, gw_HWndFirst);  
WHILE Wnd <> 0 DO
BEGIN {Не показываем:}  
IF (Wnd <> Application.Handle)
AND {-Собственное окно}      IsWindowVisible(Wnd)
AND {-Невидимые окна}      (GetWindow(Wnd, gw_Owner) = 0)
AND {-Дочернии окна}      (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}  
THEN
BEGIN    
GetWindowText(Wnd, buff, sizeof(buff));    
ListBox1.Items.Add(StrPas(buff));  
END;  
Wnd := GetWindow(Wnd, gw_hWndNext);  
END;  
ListBox1.ItemIndex := 0;
end;


 
SPIRIT ©   (2004-01-29 09:04) [1]

PostMessage(FindWindow(Nil,pchar(StrPas(buff))), WM_QUIT, 0, 0);

закрывает все кроме окон эксплоера...


 
SPIRIT ©   (2004-01-29 12:14) [2]

WM_CLOSE  бл"


 
CMeX ©   (2004-01-29 13:08) [3]

Не PostMessage, a SendMessage, т.к PostMessage работает только со своим приложением...


 
Игорь Шевченко ©   (2004-01-29 13:18) [4]

CMeX ©   (29.01.04 13:08)


> т.к PostMessage работает только со своим приложением...


О сколько нам открытий чудных...

---
LMD


 
Digitman ©   (2004-01-29 13:22) [5]


> CMeX ©   (29.01.04 13:08) [3]



> PostMessage работает только со своим приложением


эт ты где вычитал такое ?


> SPIRIT ©   (29.01.04 09:04) [1]
> закрывает все кроме окон эксплорера...


с чего ты вообще взял, что посылка WM_CLOSE есть 100%-но документированный способ закрыть любое GUI-приложение ?
каждое приложение вольно реагировать на WM_CLOSE по-своему - одно действует ожидаемым тобой образом, другое же попросту плюет на него с высокой колокольни, пока штатно не завершатся все его трэды .. к тому, думаю, попытка закрыть  таким образом экз-р эксплорера, реализующего польз.интерфейс для дисктопа, будет заведомо бестолковой


 
SPIRIT ©   (2004-01-29 13:40) [6]

explorer на WM_QUIT вообще забивает... а а после VW_CLOSE приложения спрашивают сохранить ли изменения ? ....  В идеале хотелось, чтобы закрывалось все и без предупреждений


 
SPIRIT ©   (2004-01-29 13:41) [7]

кроме десктопа


 
Digitman ©   (2004-01-29 13:49) [8]

просто из любопытства .. скажи, а зачем это понадобилось вообще ? чем м.б. вызвана необходимость закрывать то, что открыл не ты собственноручно ?


 
SPIRIT ©   (2004-01-29 13:58) [9]

Проводиться тестирование .. да .. и перед началом запускается прога короая убирает иконки рабочего стола, скрывает панель задач и закрывает все окна открытые... чтобы ничего не отвлекало.. рабочий стол и окно тестирования ....


 
Vit@ly ©   (2004-01-29 14:03) [10]

А каким образом решается проблема клавиши "Windows"?
Куда ее спрятать?


 
Digitman ©   (2004-01-29 14:04) [11]


> SPIRIT ©   (29.01.04 13:58) [9]


ну а почему не поступить проще ?

1) запретить "веселые" комбинации alt-tab, ctrl-esc и пр.
2) убрать с глаз долой Taskbar
3) сделать окно нужного приложения модальным в рамках системы в целом
4) в конце-концов плюс ко всему сделать еще полноэкранный режим приложения

?


 
SPIRIT ©   (2004-01-29 14:26) [12]

Зачем ? ... у меня итак проще не бывает .. голый рабочий стол ... кнопку ПУСК тоже отключил ... обычный юзер уже в тупике... Альт ТАб.. ктрл эск хм если все окна закрылись.. так зачем же блокировать их . Полноэкранный режим .. как дополнительная мера без-ти. А еще .. я даже диспетчера задач покилил ... точнее по таймеру слежу если открывается то тут же закрываю :). Вот .. еще сижу перебираю всякие комбинации клавиш с ктрлом и альтом ради прикола .. ведь должна же быть горячка вызова проводника ?? ...а может и нет ... впрочем времени на тест уходит 15 минут .. вряд ли кто то будет тратить это драгоценное время на взлом программы.
Блин. если не трудно помогите "веселые клавиши" вааще все отрубить


 
Vit@ly ©   (2004-01-29 14:29) [13]

> SPIRIT ©
Кнопку отключить не проблема, я спрашивал о клавише "Windows". Продвинутые юзеры о ней помнят


 
SPIRIT ©   (2004-01-29 14:40) [14]

Я ее и имел в виду
SetWindowLong(FindWindowEx(FindWindow("Shell_TrayWnd", nil), 0, "Button", nil), GWL_ID, -1);


 
Alexander666 ©   (2004-01-29 18:13) [15]

Делать вам нечего, сударь. Я зайду через родимый Дос сотру ваше пиложение с лица зе... точнее моего компа. Кстати, а про автозапуск не забыли?


 
DVM ©   (2004-01-29 18:51) [16]


> Делать вам нечего, сударь. Я зайду через родимый Дос сотру
> ваше пиложение с лица зе... точнее моего компа. Кстати,
> а про автозапуск не забыли?

А на твой комп они как я понял и не претендуют. Какой Дос в Win2000? Если никаких программ других нет и нет средств их запустить - ничего сделать нельзя - сиди и тестируйся.


 
Alexis ©   (2004-01-29 20:00) [17]

2 Spirit-Так ты приведенным кодом находишь только те приложения, которые создают окна, пусть даже и скрытые.Ведь многие приложения(например снифферы) вообще без окон запускаются.Ты так не все найдешь...


 
Alexander666 ©   (2004-01-30 03:04) [18]


> DVM ©   (29.01.04 18:51) [16]

А вот и бывает! Тем более, что ведь можно винт-то делить на разделы. Потому у меня на одном диске WinNT а на втором Win9x - и ве работает.


 
SPIRIT ©   (2004-01-30 06:28) [19]

Конечно поломать прогу сможет не каждый... но кто очень захочет обязательно сможет . Вопрос только в том, сможет ли он после этого начать тестирование, ведь на серваке выдается 15 минут чтобы человек приступил к экзамену... иначе придеться опять идти к админу и просить разрешить тестирование... а тот наверняка призадумается, почему 15 мин. чел не мог нажать кнопку "начать тест".


 
DVM ©   (2004-01-30 09:15) [20]


> А вот и бывает! Тем более, что ведь можно винт-то делить
> на разделы. Потому у меня на одном диске WinNT а на втором
> Win9x - и ве работает.

Почитайте выше, речь идет о компьютере в учебном заведении. Ваш компьютер здесь ни при чем.


 
YuRock ©   (2004-01-30 10:19) [21]

> SPIRIT

А не проще ли просто не запускать Explorer, а запускать вообще только одну нужную прогу?


 
Alexander666 ©   (2004-01-30 11:11) [22]

DVM, извиняюсь за невнимательность.



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

Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.031 c
3-1078594297
Nikis
2004-03-06 20:31
2004.04.04
Таблица DOS-кодировки


14-1078904214
Dimedrol
2004-03-10 10:36
2004.04.04
Win2000 не грузиться...


14-1078484333
blackman
2004-03-05 13:58
2004.04.04
Добрые истории для детей


3-1078406893
WebErr
2004-03-04 16:28
2004.04.04
Сложности сортировки


6-1075378323
Goida
2004-01-29 15:12
2004.04.04
Как из своей проги послать сообщение на телефон GSM (мегафон)?





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