Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1162359332
apic
2006-11-01 08:35
2006.11.19
автозагружаемые DLL


15-1162279588
Карелин Артем
2006-10-31 10:26
2006.11.19
Кто за удаленным компьютером сидит?


15-1162457313
dr Gonzo
2006-11-02 11:48
2006.11.19
Нужен ли софтверной фирме открытый форум?


2-1162238869
Evo
2006-10-30 23:07
2006.11.19
ошибка блин


2-1162475210
lobach
2006-11-02 16:46
2006.11.19
Реестр





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