Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-6482
F22
2003-03-24 12:06
2003.04.03
Подсчет слов


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


4-6855
stainer
2003-02-03 13:22
2003.04.03
ishellbrowser


14-6696
Шишкин Илья
2003-03-18 14:52
2003.04.03
Помогите выбрать компонент


1-6544
DelphiN!
2003-03-21 12:13
2003.04.03
Как узнать handl текущего компонента и окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский