Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
1

мини Диспетчер задач

29.07.2010, 09:21. Показов 3436. Ответов 23
Метки нет (Все метки)

Доброго времени суток. У меня такой вопрос: есть код который в ListView выводит названия запущеных программ (на подобии диспетчера задач)...

код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure TfmMain.GetWindowList(FrmHandle,AppHandle:THandle);
var
    buffer:array [0..255] of char; //буффер для хранения заголовка окна
begin
  fmMain.ProcessViev.Clear;
  Wnd := GetWindow(FrmHandle, GW_HWNDFIRST); // поиск первого окна
  while Wnd <> 0 do
  begin
    if (Wnd <> AppHandle) and            {проверяем не нашей ли программы окно}
       IsWindowVisible(Wnd) and          {и видимо ли оно}
      (GetWindow(Wnd, gw_Owner) = 0)  and
      (GetWindowText(Wnd, buffer, sizeof(buffer)) <> 0)
    then
    begin
        GetWindowText(Wnd, buffer, sizeof(buffer)); //получаем заголовок окна
 
        if buffer <> 'Program Manager' then
            with fmMain.ProcessViev.Items.Add do
            begin
              Caption := buffer;            //Заголовок
              SubItems.Add('Работает');
            end;
    end;
    Wnd := GetWindow(Wnd, GW_HWNDNEXT);     //ищем окна дальше
  end;
end;
но проблема в том что он не работает в Онлайн, т.е. чтобы посмотреть изменения нужно постоянно нажимать кнопку "Обновить".
Пробывал поставить на Таймер, но тогда выделить какой либо заголовок становится проблемотично, или вообще не получается, т.к. из за строки - fmMain.ProcessViev.Clear; список создается заного, и выделение пропадает.

Вопрос в том, как можно сделать чтобы выделение оставалось?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2010, 09:21
Ответы с готовыми решениями:

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

Диспетчер задач
привет всем. как можно получить список запущеных процессов (а не окон) и делать различные...

Диспетчер задач
Подскажите пожалуйста исходник что-бы при включении программы блокировался диспетчер задач. Или как...

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

23
1079 / 1005 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
29.07.2010, 09:31 2
При клике на "процесс" сохраните его PID.
В процедуре таймера после того, как обновился список процессов программно выделяйте "процесс" с указанным PID.

PS: В Дельфи я не очень.
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
29.07.2010, 09:34  [ТС] 3
Евгений М., ну я теоретически примерно также думал, а практически не знаю как...
0
65 / 65 / 16
Регистрация: 25.11.2009
Сообщений: 283
12.08.2010, 00:09 4
Делал так, но не диспетчер
Необходимо поставить на List обработчик на onclick, который запоминает в глобальной переменной item list'а. после обработки таймером itemindex:=item мне помогло (обновление на таймере было 1500.)
1
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 08:10 5
А вот практическая реализация,теоритического ответа Евгений М.
Вложения
Тип файла: rar Мини диспетчер задач.rar (195.3 Кб, 120 просмотров)
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 08:12  [ТС] 6
STRATEG, я нашел более лучший вариант диспетчера.... правда он стал грузить всю программу и зависать... возможно выдрал не правельно... но работает отменно (по крайней мере в примере)
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 08:32 7
Скинь сюда,всем интересно будет его реализация мне в том числе
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 08:35  [ТС] 8
я его уже выкладывал, вот ссылка мини Диспетчер задач

4-й пост.
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 08:40 9
хммм...Дак это пример диспетчера,но нет выделения тут
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 08:43  [ТС] 10
STRATEG, дак мне и нужен был рабочий диспетчер, здесь если выделить процесс, то выделение не пропадет... а вот почему он виснет в моей проге, понять не могу...
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 08:58 11
А дай свой проект,глянем,проверим,исправим ну или если он Top secret то пару строк о том как ты выделяешь
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 09:02  [ТС] 12
STRATEG, дак Мышкой выделяю)) просто в листе выделяю строку (процесс).... кода ни какого нет на выделение... в этом то и приемущество этого диспетчера) А программу я бы мог выложить но она не будет у вас работать... т.к. она предназначена для мультимониторной системы, совместно с программой UltraMon.

Могу лишь описать процесс, при которм происходит зависание... но чуть позже, сейчас занят немного...
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 09:07 13
Хмм...у меня почему то вообще не выделяет ничего в этом проекте "259_taskprocess.rar" этого поста мини Диспетчер задач
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 09:13  [ТС] 14
вот попробуй... хотя что там выделять... нажми мышкой на имя процеса...
Миниатюры
мини Диспетчер задач  
Вложения
Тип файла: rar Dispecher.rar (240.9 Кб, 57 просмотров)
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 09:25 15
Дак там же StringGrid а не ListView,он не теряет фокуса так сказать.
А я тебе писал другое,как понял то что нужно было. ListView + выделение строки
Сравни
1) обычное выделение(Standart Select)
2) выделение цветом (Color Select)
Миниатюры
мини Диспетчер задач   мини Диспетчер задач  
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
12.08.2010, 09:36  [ТС] 16
STRATEG, мы просто не правельно другдруга поняли, я так думаю))) смысл не в мульти селекте) а в том что в ListViev при выделении строки, когда на таймер ставишь обновление, то каждую секунду список пересоздается и выделение вообще пропадает, и получается что я выделяю строку хочу нажать - Закрыть, а пока мышку веду к кнопке, выделение пропадает и закрывать нечего))

а в моем новом примере, другой способ рассматривается, и выделение всегда остается...
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
12.08.2010, 09:47 17
Ага,ясно у меня тоже не мультиселект,я просто изменл цвет выделения,думал ты таким образом хочешь выделить нужные приложения,цветом,но когда обновляется список выделение цветом пропадает теперь все ясно
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
17.08.2010, 08:58  [ТС] 18
STRATEG, я все уже перепробывал, прога всеравно виснет... причем, не просто виснет... в общем все происходит так: запускаю прогу (все нормально), открываю форму (отображает определенную область рабочего стола, точнее область второго монитора на мультимониторной системе), активирую отображение, после этого отключить отображение или передвинуть форму становится не возможным, при этом курсор не выходит за пределы главной формы, упераясь в ее стенки.... некоторох попыток по закрытию дочерней формы, она все же закрывается, и зависание пропадает....

решил выложить исходник... для проверки нужно запускать Монитор1, затем щелкнуть правой КМ - Активный.

p.s. если нет 2-го монитора, будет белый экран
Вложения
Тип файла: rar Monitoring.rar (493.1 Кб, 44 просмотров)
0
1171 / 477 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
17.08.2010, 12:51 19
DenProx скорее всего понимаешь,что мульти-мониторную программу тестить с одним монитором )) видео сними,попробуем хотябы че нить придумать после просмотра.
0
Техник
315 / 173 / 26
Регистрация: 09.10.2009
Сообщений: 3,101
17.08.2010, 12:55  [ТС] 20
STRATEG, а ты пробывал ее запускать? просто интересно, работает вообще или нет))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2010, 12:55

Диспетчер задач
Как сделать так чтобы при выходе из второй формы (не основной), то есть при выходе из программы,...

Диспетчер задач и компонент
Доброго всем времени суток! Меня интересует вопрос на который вы думаю знаете ответ! Какой...

Диспетчер задач ActionManager
Вопрос адресован тем, кто читал книгу &quot;Программирование в Delphi 7&quot; Архангельский. В разделе 4.5.2...

Закрыть диспетчер задач
Всем привет! Возникла проблема с закрытием Диспетчера задач на Windows 8.1. На Widnows 7 работал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru