С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 3

Как по дескриптору окна определить где на диске находится прога?

19.11.2011, 12:42. Показов 1773. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня такой вопрос. Как мне по хендлу(дескриптору) окна определить где на диске находится прога! Например: я запустил DOC файл, и найдя хендл(дескриптор) этого окна, мне нужно узнать откуда запущен этот файл.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2011, 12:42
Ответы с готовыми решениями:

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

Нужно определить границы внутренней области окна по дескриптору
Нужно определить координаты внутренней облости окна относительно всего экрана (окно виртуальной машины orcle) по дискриптору. чтото...

Как узнать ID процесса (PID) по дескриптору окна (Handle)?
АП. Интересует как узнать PID по Handle.

3
noob
20.11.2011, 08:05
Цитата Сообщение от hacia
У меня такой вопрос. Как мне по хендлу(дескриптору) окна определить где на диске находится прога! Например: я запустил DOC файл, и найдя хендл(дескриптор) этого окна, мне нужно узнать откуда запущен этот файл.
Ну во-первых запускается не doc-файл, а exe-файл редактора, который в свою очередь загружает документ. Зная Handle окна можно найти файл программы создавшей его.

А найти файл программы можно примерно так:
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
27
28
29
30
31
32
// Для начала определяешь какому процессу принадлежит окно:
 
Var pProcID : ^DWORD;
begin
 GetMem (pProcID, SizeOf (DWORD));
 GetWindowThreadProcessId (WinHandle, pProcID);
end;
 
// а после этого используешь TProcessEntry32 примерно так:
 
function GetExeNameByProcID (ProcID : DWord) : String;
var
 ContinueLoop   : BOOL;
 FSnapshotHandle : THandle;
 FProcessEntry32 : TProcessEntry32;
begin
 FSnapshotHandle := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);
 
 FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
 
 ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
 
 Result := ''''
 while (Integer (ContinueLoop) <> 0) and (Result='''') do
 begin
  if FProcessEntry32.th32ProcessID = ProcID then
   Result := FProcessEntry32.szExeFile;
  ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
 end;
end;
 
// Не забудь в uses добавить Tlhelp32
Пример взят из delphi world...
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 3
21.11.2011, 00:35  [ТС]
Я так понял, что нельзя узнть где находиться этот DOC файл?
0
noob
21.11.2011, 09:54
Цитата Сообщение от hacia
Я так понял, что нельзя узнть где находиться этот DOC файл?
Ну во-первых нужно определиться что тебе нужно - "где на диске находится прога" или "где находиться этот DOC файл". Путь к документу можно получить средствами ворда - если, конечно, документ открыт именно вордом. Точнее сказать не могу. Помнится там была процедура возвращающая путь к документу. Поищи, в форуме это уже было вроде.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2011, 09:54
Помогаю со студенческими работами здесь

Как по дескриптору процесса получить hWnd порождённого этим процессом окна?
Как по дескриптору процесса получить hWnd порождённого этим процессом окна? Цель: запустить приложение через Shell (или API...

Как в RichTextBox определить где находится курсор?
Товарищи подскажите как определить где находится курсор в RichTextBox, или как еще можно проверять по словам написаный текст чтобы сделать...

Как определить, где в данный момент находится окно по оси X, Y
господа как определить где в данный момент находится окно по оси X,Y

Как по дескриптору определить изменение курсора в чужих окнах?
Написал код перехвата вида курсора по дескриптору в локальном окне формы. Как сделать тоже самое но за пределами окна (на чужих...

Как определить где находится база данных с которой работает приложение?
Как определить где находится база данных с которой работает приложение? Запускаю приложение. Приложение добавляет и получает...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru