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

Вниз

Handle главного окна проги....   Найти похожие ветки 

 
Chlavik ©   (2003-03-20 22:25) [0]

Здравствуйте! Как мне узнать handle главного окна программы если я знаю handle её процеса? handle процеса я достаю из CreateProcess (из структуры PROCESS_INFORMATION) прога которую я запускаю под Dos, вроде всё сказал....


 
VAleksey ©   (2003-03-21 07:25) [1]

Application.MainForm.Handle


 
theodor_iv ©   (2003-03-21 08:30) [2]

Если программа чужая, то EnumThreadWindows


 
Севостьянов Игорь ©   (2003-03-21 15:32) [3]

Используй WinAPI32:

HWND GetWindow(
HWND hWnd, // handle to original window
UINT uCmd // relationship
);
Parameters
hWnd
[in] Handle to a window. The window handle retrieved is relative to this window, based on the value of the uCmd parameter.
uCmd
[in] Specifies the relationship between the specified window and the window whose handle is to be retrieved. This parameter can be one of the following values


Для дочерних uCmd:

GW_CHILD The retrieved handle identifies the child window at the top of the Z order, if the specified window is a parent window; otherwise, the retrieved handle is NULL. The function examines only child windows of the specified window. It does not examine descendant windows.

Для родителей uCmd:

GW_OWNER The retrieved handle identifies the specified window"s owner window, if any. For more information, see Owned Windows.


 
Chlavik ©   (2003-03-21 16:04) [4]

Ну и куда мне писать там handle запущеного процеса? Если (GetWindow) туда надо писать handle окна от которого будем "отталкиватся" ...
Если нельзя сделать проще чем через EnumThreadWindows то прийдётся юзать его...


 
Chlavik ©   (2003-03-21 16:33) [5]

Или писать так WinHndl:=GetWindow(PrHandle,GW_CHILD); ???


 
PGM   (2003-03-24 08:39) [6]

Мне обычно нужна была обратная операция. Для этого случая можно так. Сначала EnumWindows. Там выбрать те у кого нет WS_CHILD. Затем GetWindowThreadProcessId(HWND, @PID). Ну а PID это уже почти Handle. Дальше зависит от ОС. Под NT-подобными я обычно пользовался OpenProcess и получал массу информации о процессе. Для W9X я думаю подойдет библиотека ToolHelp32.


 
PGM   (2003-03-24 08:40) [7]

В твоем случае еще проще. CreateProcess возвращет PID in Process_Information.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
14-6692
Карлсон
2003-03-17 18:45
2003.04.03
мечта идиота :)


7-6799
_MAD_
2003-02-07 21:32
2003.04.03
TVtuner


1-6519
delkos
2003-03-24 21:36
2003.04.03
Простой Трейнер


14-6782
Tihas
2003-03-13 02:15
2003.04.03
Люди чистый плагиат http://www.nkfi.ru/


3-6332
Beka
2003-03-14 08:39
2003.04.03
Какой Password у SYSDBA в Oracle8i