Главная страница
    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.068 c
2-1162225909
daser
2006-10-30 19:31
2006.11.19
Как выделить несколько записей в DBGrid?


11-1139146742
Ganda1f
2006-02-05 16:39
2006.11.19
STL для дельфи (тестируем)


15-1161964546
Palladin
2006-10-27 19:55
2006.11.19
юридический вопрос


1-1159995574
Miksher
2006-10-05 00:59
2006.11.19
Анализ журнала безопасности windows


15-1162215563
@!!ex
2006-10-30 16:39
2006.11.19
GotDotNet





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