Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 17:08   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию Не могу получить hwnd компонента с процессами в Диспетчере задач

Система Windows 8.
Получаю список компонентов диспетчера так
Код:
function EnumChildProc(WndCtrl : HWND; lParam : Longint) : Boolean; stdcall;
var   hListView: HWND;
      szClass : array[Byte] of Char;
begin
  Result := True;
  GetClassName(WndCtrl, szClass, SizeOf(szClass));
  begin
    Form1.Memo1.Lines.Add(szClass);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  h : HWND;
begin
 h := FindWindow(NIL, 'Диспетчер задач');
 if h <> 0 then
   if (not EnumChildWindows(h, @EnumChildProc, 0)) then
   Exit;
end;
В итоге получаю такие компоненты
PHP код:
CtrlNotifySink         33    штуки
CvChartWindow          6     штук
DirectUIHWND           1     штука
NativeHWNDHost         1     штука
ScrollBar              24    штуки
SysHeader32            2     штуки
SysListView32          2     штуки
SysTabControl32        1     штука 
Среди них я так и не нашел компонент который содержит список с процессами.
Тестировал так, получил hwnd каждого компонента и скрывал компонент так
Код:
ShowWindow( hwnd,SW_HIDE);
Удавалось скрыть только все полностью (DirectUIHWND,NativeHWNDHost) или отдельно, но ненужное (SysListView32)

Скрин диспетчера
bakanaev вне форума Ответить с цитированием
Старый 02.06.2013, 17:34   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

посмотрите структуру окон через WinSight или Spy++(по ссылке в архиве она)
http://programmersforum.ru/showpost....83&postcount=8
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.06.2013, 19:41   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
SysListView32 2 штуки
Вот он и содержит список процессов.
Человек_Борща вне форума Ответить с цитированием
Старый 02.06.2013, 19:59   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Среди них я так и не нашел компонент который содержит список с процессами.
А зачем он тебе понадобился? Скрывать свой процесс?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2013, 20:19   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А зачем он тебе понадобился? Скрывать свой процесс?
для скрытия придется его изменить. А для изменения требуется адрес этого списка и внедрение в процесс.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 02.06.2013, 20:36   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
для скрытия придется его изменить. А для изменения требуется адрес этого списка и внедрение в процесс.
никакого инжекта не нужно.
с листивиевом можно работать и без инжекта.
ток осторожно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.06.2013, 20:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
для скрытия придется его изменить.
Не обязательно. Это всего лишь окно, в котором можно подделать информацию.
Другое дело - зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2013, 07:17   #8
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Вот он и содержит список процессов.
Неа
Цитата:
А зачем он тебе понадобился? Скрывать свой процесс?
Верно
bakanaev вне форума Ответить с цитированием
Старый 03.06.2013, 07:57   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от bakanaev Посмотреть сообщение
Неа

Верно
компонент содержащий список процессов, это SysListView32.

я уже сказал куда рыть, и чем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.06.2013, 08:11   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Верно
Я с помошью других средств просмотра процессов легко пущу твою идею насмарку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить процесс в диспетчере задач L.A.M.E.R. Win Api 3 27.07.2012 00:38
Как отслеживать процесс в Диспетчере задач... xC0der Win Api 2 12.01.2012 10:41
В диспетчере задач второй пользователь... миха48 Помощь студентам 5 01.12.2011 17:03
Узнать HWND компонента другого приложения Revenant Mar Sara Общие вопросы Delphi 1 16.07.2010 02:50
Не отображаются имена потзователей в диспетчере задач Altera Windows 1 24.10.2009 14:46