Форум: "WinAPI";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
ВнизКак узнать ProcessID зная дескриптор (hangle) окна Найти похожие ветки
← →
Delf (2003-07-25 13:36) [0]пишу прогу которая бы убивала процесы (программы) но только те что имеют окна определенного типа
Просто закрыть окно не получается потому что хотя окно и исчезает но программа все равно в процесах висит
Проблема вот в чем
Как узнать к какому процесу относится данное окно
← →
Игорь Шевченко (2003-07-25 14:45) [1]GetWindowThreadProcessId
← →
SergeySEM (2003-07-25 15:37) [2]поверь это поможет
procedure TfmWinapi.GetWindowExParams(Wnd: HWND);
var
PParam: array[0..127] of Char;
ProcId: LongInt;
hInst: THandle;
Rct: TRect;
Begin
{Заполняем основную страницу}
edWText.Text:= GetText(wnd); //Заголовок
GetClassName(wnd, PParam, 128); //Класс
lbWClass.caption:= StrPas(PParam);
lbWHandle.caption:= IntToStr(wnd); //Дескриптор
lbWHmenu.caption:=IntToStr(GetMenu(wnd));// Дескриптор меню
ImWIcon.Picture.Icon:=GetIcon(wnd); //Иконка
GetWindowText(GetParent(wnd), PParam, 127);//Заголовок родителя
EdPWText.text:= StrPas(PParam);
lbPWHandle.caption:= IntToStr(GetParent(wnd));//Дескриптор родителя
GetWindowRect(Wnd, Rct);//..Координаты
edWLeft.text:= IntToStr(Rct.Left);
edWTop.text:= IntToStr(Rct.Top);
edWWidth.text:= IntToStr(Rct.Right-Rct.Left);
edWHeight.text:= IntToStr(Rct.Bottom-Rct.Top);
edWRight.text:= IntToStr(Rct.Right);
edWBottom.text:= IntToStr(Rct.Bottom);
lbWDC.Caption:= IntToStr(SelDC); //Дисплейный контекст(DC или Canvas.Handle)
hInst:= GetWindowLong((wnd), GWL_HINSTANCE);//HInstance
lbWHinst.Caption:= IntToStr(hInst);
GetWindowThreadProcessId(wnd, @ProcId);//Идентификатор процесса
lbWProcId.Caption:= IntToStr(ProcId);
end;
← →
Delf (2003-07-25 16:41) [3]Спасибо вам
Все великолепно работает
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.013 c