Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

путь е екзешнику по окну   Найти похожие ветки 

 
user51   (2007-01-25 11:59) [0]

Хочу получить путь екзешника  создавшего  окно
var wndk:integer;
a : Array[0..MAX_PATH] of char
ProcessId : integer;
ThreadId : integer;
HandleWindow : Integer;

wndk:=FindAWindow(ComboBox1.text,"");
if  wndk <> 0 then
begin
ThreadId := GetWindowThreadProcessId(wndk,@ProcessId);
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
if GetModuleFileName(HandleWindow ,a, sizeof(a))=0
then //Application.MEssageBox(pchar("не могу получить    путь"),"ОШИБКА", 0);
end;

если HandleWindow=0 то пишет путь вызвавшей программы
в любом другом случае не может получить путь
в чем засада ?


 
Сергей М. ©   (2007-01-25 12:09) [1]

Твой HandleWindow не имеет ни малейшего отношения к хэндлам модулей.
Более того, то что ты назвал HandleWindow, должно было быть названо хотя бы как "HandleProcess", ибо это хэндл, полученный в результате открытия объекта типа процесс.


 
user51   (2007-01-25 12:12) [2]

а как получить хендл модуля ?


 
BiN ©   (2007-01-25 12:14) [3]


> Сергей М. ©   (25.01.07 12:09) [1]
>
> Твой HandleWindow не имеет ни малейшего отношения к хэндлам
> модулей.

У него вроде HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);


> user51   (25.01.07 12:12) [2]

Используй  GetModuleFileNameEx
И переменные лучше бы называть адекватно....


 
Сергей М. ©   (2007-01-25 12:52) [4]


> BiN ©   (25.01.07 12:14) [3]


> У него вроде HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,
> False,ProcessId);


Это я прекрасно вижу.
Он получает хэндл именно процесса, а не окна и уж тем более не модуля.



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.069 c
15-1169481041
Vlad Oshin
2007-01-22 18:50
2007.02.11
О базах, синтаксисе, делфи.. не знаю о чем... как так может быть?


2-1169489805
Pasha L
2007-01-22 21:16
2007.02.11
Новый поток или просто processMessages


2-1169666901
aleko
2007-01-24 22:28
2007.02.11
освобождение ресурсов


2-1169440828
Генрих
2007-01-22 07:40
2007.02.11
Memo и номер строки


15-1169077988
mdeebivaetje
2007-01-18 02:53
2007.02.11
утилита.