Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизСписок запушенных приложений Найти похожие ветки
← →
NewUser0 (2006-11-03 15:17) [0]Для того чтобы узнать список запушенных приложений, использую данный код:
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 нужно завершать (первый или второй), к тому же оба приложения имеют одинаковые заголовок и класс главного окна.
А теперь собственно вопрос по делу: Каким образом можно узнать какое приложение из этих двух пользователь хочет завершить?
Посоветуйте какой-нибудь другой алгоритм или выложите ссылку, на какой-нибудь пример Диспетчера задач, либо дайте другой совет.
Буду, благодарен за любую помощь.
← →
Орион © (2006-11-03 15:28) [1]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1167
← →
Орион © (2006-11-03 15:31) [2]> Буду, благодарен за любую помощь.
можно в WMZ :)
← →
Сергей М. © (2006-11-03 15:44) [3]
> NewUser0 (03.11.06 15:17)
Код этот ты спер у кого-то ? Спер. Причем бездумно)
Ну а раз думать не желаешь, то и помощь тебе - как мертвому припарка)
← →
Чапаев © (2006-11-03 16:48) [4]
> Сергей М. © (03.11.06 15:44) [3]
Из JVCL, если мне не изменяет склероз.
← →
Сергей М. © (2006-11-03 16:56) [5]
> Чапаев © (03.11.06 16:48) [4]
Вот и я думаю - где-то в какой-то помойке я это уже видел)
← →
newuser0 (2006-11-04 15:11) [6]Я бы попросил, не ругатся, етот ко я взял с справки кулиба.
и еше, такое впечатление что вы никодга не исползовали чужой код или библиотеки, написанные не вами.
← →
Chose © (2006-11-05 01:34) [7]> такое впечатление что вы никодга не исползовали чужой код
> или библиотеки, написанные не вами.
Использовали, но перед этим, хотя бы разбирались, что он делает :)
← →
DVM © (2006-11-05 12:15) [8]
> Посоветуйте какой-нибудь другой алгоритм или выложите ссылку,
> на какой-нибудь пример Диспетчера задач, либо дайте другой
> совет
EnumWindows(). Пример использования есть на сайте Игоря Шевченко.
Получать список окон надо по таймеру.
Или поставить ловушку WH_SHELL тогда таймер не нужен.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c