powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Зная pid процесса получить Handle
11 сообщений из 11, страница 1 из 1
Зная pid процесса получить Handle
    #39556746
kamero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зная pid процесса получить Handle? pid получаю с помощью WMI, и всё бы хорошо но в WMI нету handle(Заголовка окна). Например когда хром открываем и там пустая вкладка. Вот нужно получить имя этой вкладки(Новая вкладка).
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556750
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kameroВот нужно получить имя этой вкладки(Новая вкладка).
Нет там вкладок, если имеется в виду нечто pagecontrol.
За окно отвечает один процесс, который и занимается отрисовкой по просьбам субпроцессов.
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556758
kamero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
procedure TForm1.Button1Click(Sender: TObject);
var
  Wnd: hWnd;
  buff: array[0..127] of Char;
begin
  ListBox1.Clear;
  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) {-Окна без заголовков}
      then
    begin
      GetWindowText(Wnd, buff, sizeof(buff));
      ListBox1.Items.Add(StrPas(buff));
    end;
    Wnd := GetWindow(Wnd, gw_hWndNext);
  end;
  ListBox1.ItemIndex := 0;
end;



Вот то что меня интересует... Но он выводит список всех запущенных. А мне нужно по pid из wmi получить описание окна. Вот например окно notepad++ (Путь к открытому файлу Notepad++ [Administrator])
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556763
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamero,

я понял, что интересует, но этого не получить. Его окно не имеет названия. И оно одно для всех закладок.
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556797
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kameroЗная pid процесса получить Handle?Какой хендл интересует? Вам OpenProcess() нужен?
kameroНапример когда хром открываем и там пустая вкладка. Вот нужно получить имя этой вкладки(Новая вкладка).Сформулируйте задачу
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556924
kamero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_kameroЗная pid процесса получить Handle?Какой хендл интересует? Вам OpenProcess() нужен?
kameroНапример когда хром открываем и там пустая вкладка. Вот нужно получить имя этой вкладки(Новая вкладка).Сформулируйте задачу

Моя программ в момент запуска любого приложения ловит и выводит мне что и когда было запущено.

Код: pascal
1.
2.
3.
4.
5.
      Writeln(Format('Caption        %s',[FEventResult.TargetInstance.Caption]));
      Writeln(Format('ProcessId      %s',[FEventResult.TargetInstance.ProcessId]));
      Writeln(Format('Заголовок      %s',[StrPas(buff)]));
      Writeln(Format('ExecutablePath %s',[FEventResult.TargetInstance.ExecutablePath]));
      Writeln(Format('Date+Time      %s',[DateTimeToStr(now)]));



Мне нужно еще как то получить шапку окна(caption). Вот как у winform( Caption=Form1). Вот мне нужно этот Caption приложений как то поймать. У меня есть pid.
Был на msds и перепробовал все. В wmi нету того что мне надо. Нашел код этот в инете. И он ловит эти шапки. Вот я и хочу как то по pid получить их.
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556932
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kameroМне нужно еще как то получить шапку окна(caption).

В момент запуска приложения у него ещё нет никаких окон. И не факт, что будут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39556997
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamerowadman,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
procedure TForm1.Button1Click(Sender: TObject);
var
  Wnd: hWnd;
  buff: array[0..127] of Char;
begin
  ListBox1.Clear;
  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) {-Окна без заголовков}
      then
    begin
      GetWindowText(Wnd, buff, sizeof(buff));
      ListBox1.Items.Add(StrPas(buff));
    end;
    Wnd := GetWindow(Wnd, gw_hWndNext);
  end;
  ListBox1.ItemIndex := 0;
end;



Вот то что меня интересует... Но он выводит список всех запущенных. А мне нужно по pid из wmi получить описание окна. Вот например окно notepad++ (Путь к открытому файлу Notepad++ [Administrator])Ну добавьте к этому GetWindowThreadProcessId
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39557044
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kameroВот мне нужно этот Caption приложений как то поймать.Что будете делать в случае если процесс один, а окон несколько?
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39557058
kamero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Хм... интересно)) Об этом я не думал))
Первое открытие идёт норм, а второе уже в dllhost.exe уходит. Ну так wmi по крайней мере ловит.
...
Рейтинг: 0 / 0
Зная pid процесса получить Handle
    #39557227
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamero,

авторХм... интересно)) Об этом я не думал))

Есть подозрение, что задача поставлена неверно. Из-за этого и решения её получаются так себе.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Зная pid процесса получить Handle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]