powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / неуловимое окно
10 сообщений из 10, страница 1 из 1
неуловимое окно
    #34071426
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть диалоговое окно, у которого нет заголовка, т.е. caption = “”. Как мне получить его handle? Если использовать EnumWindows, то оно не будет обнаружено, поэтому я решил воспользоваться EnumProcesses и EnumProcessModules. С их помощью я выясняю работает или нет exe-шник приложения, но как добраться до этого окна пока, что-то не допёр, натолкните на мыслю…

Спасибо.
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
неуловимое окно
    #34071464
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаешь spy++ что идет в комплекте с VC. Им выбираешь нужное окно. Spy++ покажет тебе имя класса окна. Потом отдаешь это имя класса в FindWindow первым параметром.
...
Рейтинг: 0 / 0
неуловимое окно
    #34071535
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЗапускаешь spy++ что идет в комплекте с VC. Им выбираешь нужное окно. Spy++ покажет тебе имя класса окна. Потом отдаешь это имя класса в FindWindow первым параметром.
класс CDialog, только спай показывает его в виде #32770 (или что-то типа того), этого будет недостаточно, т.к. в этот момент могут работать и другие диалоги.
...
Рейтинг: 0 / 0
неуловимое окно
    #34071922
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если прога ваша, то было бы удобно задать уникальное имя класса для этого диалога.
Если нет, то можно хэндл парента скормить FindWindowEx, тогда поиск будет осуществляться только для выбранного приложения.
...
Рейтинг: 0 / 0
неуловимое окно
    #34072918
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, к сожалению, прога не моя. На самом деле, в цикле CALLBACK EnumWindowProc было "небольшое недоразумение", которое приводило к тому, что окна, у которых не было заголовков функция не находила, я это исправил - все работает. Теперь не могу нажать на кнопку с помощью SendInput, написать текст в CEdit у меня получается, даже изменить саму надпись на кнопке, но нажатие не фиксируется... у кого-нибудь есть пример использования этой функции или может есть ссылка в MSDN'е (VS2005)? Заранее благодарен.
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
неуловимое окно
    #34073146
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MSDN, вроде, всё расписано... перед использованием надо заполнить 2 структуры: INPUT и MOUSEINPUT или KEYBDINPUT, можно с ними разобраться, но, по-моему, проще будет что-то вроде:

SendMessage(hWnd,WM_LBUTTONDOWN,0,0);
SendMessage(hWnd,WM_LBUTTONUP,0,0);

или ч/з mouse_event/keybd_event...
...
Рейтинг: 0 / 0
неуловимое окно
    #34073178
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я делаю следующим образом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
BOOL PushButton(HWND hButton)
{
	ASSERT(hButton);
	INPUT	   in[ 2 ];
	memset(in,  0 , sizeof(in));
	in[ 0 ].type	 = in[ 1 ].type = INPUT_KEYBOARD;
	in[ 0 ].ki.wVk	 = VK_RETURN;
	in[ 0 ].ki.dwFlags = KEYEVENTF_KEYUP;
	if(SendInput( 2 , in, sizeof(in)))
	    return TRUE;
	return FALSE;
}

но это не работает почему-то, предложенный вариант из 2 SendMessage тоже!
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
неуловимое окно
    #34073254
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все - получилось с двумя Send'ами
Спасибо Dmitrii K. !
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
неуловимое окно
    #34073320
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, GetLastError() на вашем коде после SendInput говорит 87, то бишь ERROR_INVALID_PARAMETER. Так что там шо то не то с параметрами для SendInput...
...
Рейтинг: 0 / 0
неуловимое окно
    #34073431
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так всё ok (почему-то :) ).

SendInput(1, in, sizeof(in[0]));
SendInput(1, &in[1], sizeof(in[1]));

Только вот при этом должна быть в фокусе та кнопка, которую жмём...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / неуловимое окно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]