Как сабж правильно делать?
И возможно ли делать преобразование HANDLE -> HMODULE ?
До свидания, Evgeniy.
np: Lamb Of God - The Faded Line
[Metal] [Death] [Doom] [Guitar] [Animate] [C++] [asm]
EZ> Как сабж правильно делать?
EZ> И возможно ли делать преобразование HANDLE -> HMODULE ?
эм, кхе. HANDLE чево? процесса? дык у одного процесса может быть куча
окон. а HANDLE это и есть HMODULE.
_/Good Luck, Evgeniy./_
... [*ФИТ-151*]-[_Zenwalk Linux_]-[_винмоздай_]-[/дзен/]
19 авг 07 12:22, Boris Shklyaev -> Evgeniy Zhavoronkov:
EZ>> Как сабж правильно делать?
EZ>> И возможно ли делать преобразование HANDLE -> HMODULE ?
BS> эм, кхе. HANDLE чево? процесса? дык у одного процесса может быть куча
BS> окон. а HANDLE это и есть HMODULE.
Я про типы.
допустим...
HANDLE h;
HWND hw;
Hужно преобразовать h в hw
hw=h <---
До свидания, Evgeniy.
np: As I Lay Dying - The Pain Of Separation[paused]
EZ> Я про типы.
EZ> допустим...
EZ> HANDLE h;
EZ> HWND hw;
EZ> Hужно преобразовать h в hw
EZ> hw=h <---
Понимаете, HANDLE и HWND специально для того имеют разные типы, чтобы их не
использовали одно вместо другого, так как это указатели на разные сущности.
Попробуйте, например, нарисовать что-то в окне, полученном преобразованием типа
HANDLE->HWND из file handle, и подумайте, какой в этом смысл.
Вывод: уточните, из какого именно HANDLE (из указателя на что именно) Вы
хотите получить HWND.
bye
19 авг 07 18:53, Dmitry Grebeniuk -> Evgeniy Zhavoronkov:
EZ>> Я про типы.
EZ>> допустим...
EZ>> HANDLE h;
EZ>> HWND hw;
EZ>> Hужно преобразовать h в hw
EZ>> hw=h <---
DG> Понимаете, HANDLE и HWND специально для того имеют разные типы,
DG> чтобы их не использовали одно вместо другого, так как это указатели на
DG> разные сущности. Попробуйте, например, нарисовать что-то в окне,
DG> полученном преобразованием типа HANDLE->HWND из file handle, и
DG> подумайте, какой в этом смысл. Вывод: уточните, из какого именно
DG> HANDLE (из указателя на что именно) Вы хотите получить HWND.
Handle процесса. Хочу из него получить HWND чтобы достучатся до окна и
прочитать заголовок окна.
До свидания, Evgeniy.
np: As Blood Runs Black - In Dying Days
У тебя не возникает даже мысли о том, что у каждого процесса может быть
любое число окон, в том числе и ноль?
1) Через GetProcessId получить из handle процесса id процесса.
2) Через EnumWindows перебрать все top-level окна
3) Внтури EnumWindowsProc для каждого HWND вызывать GetWindowThreadProcessId
и сравнивать id с полученным на первом шаге.
DG>> на разные сущности. Попробуйте, например, нарисовать что-то в окне,
DG>> полученном преобразованием типа HANDLE->HWND из file handle, и
DG>> подумайте, какой в этом смысл. Вывод: уточните, из какого именно
DG>> HANDLE (из указателя на что именно) Вы хотите получить HWND.
EZ> Handle процесса. Хочу из него получить HWND чтобы достучатся до окна и
EZ> прочитать заголовок окна.
Обратная операция делается через
GetWindowThreadProcessId(hWnd, &processid);
HANDLE process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE, processid);
Где-то в описании этих функций в MSDN может быть и прямая операция :)
С приветом, Шурик Гребеньков. e-mail: grebenkov [не собака] gmail dot com