![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Список запушенных приложений
NewUser0 © (2006-11-03 15:17:00)Для того чтобы узнать список запушенных приложений, использую данный код:
var
Wnd : hWnd;
Buff : array [0..127] of Char;
begin
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) and
(UpperCase(StrPas(Buff)) <> UpperCase('Program Manager'))
then begin
GetWindowText(Wnd, Buff, SizeOf(Buff));
end;
Wnd := GetWindow(Wnd, GW_hWndNext);
end;
Так вот если запустить несколько программ все отлично работает, но если переключиться на какое либо окно то оно, к сожалению, в списке переходит на первую строку. Это доставляет проблему, т.к. если запустить два раза одно и то же приложение, к примеру, Calc и переключиться на одно из этих приложений, то список перепутается, и уже никак не получится завершить нужное пользователю приложение, т.к. неизвестно какой именно Calc нужно завершать (первый или второй), к тому же оба приложения имеют одинаковые заголовок и класс главного окна.
А теперь собственно вопрос по делу: Каким образом можно узнать какое приложение из этих двух пользователь хочет завершить?
Посоветуйте какой-нибудь другой алгоритм или выложите ссылку, на какой-нибудь пример Диспетчера задач, либо дайте другой совет.
Буду, благодарен за любую помощь.
DVM (2006-11-05 12:15:00) [1]
> Посоветуйте какой-нибудь другой алгоритм или выложите ссылку,
> на какой-нибудь пример Диспетчера задач, либо дайте другой
> совет
EnumWindows(). Пример использования есть на сайте Игоря Шевченко.
Получать список окон надо по таймеру.
Или поставить ловушку WH_SHELL тогда таймер не нужен.
Chose (2006-11-05 01:34:00) [2]> такое впечатление что вы никодга не исползовали чужой код
> или библиотеки, написанные не вами.
Использовали, но перед этим, хотя бы разбирались, что он делает :)
newuser0 (2006-11-04 15:11:00) [3]Я бы попросил, не ругатся, етот ко я взял с справки кулиба.
и еше, такое впечатление что вы никодга не исползовали чужой код или библиотеки, написанные не вами.
Сергей М. (2006-11-03 16:56:00) [4]
> Чапаев © (03.11.06 16:48) [4]
Вот и я думаю - где-то в какой-то помойке я это уже видел)
Чапаев (2006-11-03 16:48:00) [5]
> Сергей М. © (03.11.06 15:44) [3]
Из JVCL, если мне не изменяет склероз.
Сергей М. (2006-11-03 15:44:00) [6]
> NewUser0 (03.11.06 15:17)
Код этот ты спер у кого-то ? Спер. Причем бездумно)
Ну а раз думать не желаешь, то и помощь тебе - как мертвому припарка)
Орион (2006-11-03 15:31:00) [7]> Буду, благодарен за любую помощь.
можно в WMZ :)
Орион (2006-11-03 15:28:00) [8]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1167