imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 13.06.2004, 00:46     # 1
Mind
Junior Member
 
Аватар для Mind
 
Регистрация: 05.02.2004
Адрес: Indianapolis
Сообщения: 64

Mind Путь к славе только начался
Question Posilka soobshenia oknu

Privet vsem!!!
Navernoe eta tema uzhe bila.
Kak poluchit hwnd okna znaya tolko zagolovok?
K primeru nazvanie okna = "Test1".
I eshe, kakoi cod pri nazhatii klavishi Enter?
Nado poslat etomu oknu, chto klavisha Enter nazhata.
Kak eto sdelat?

Thx.

Последний раз редактировалось Mind; 13.06.2004 в 01:05.
Mind вне форума  
Старый 13.06.2004, 01:13     # 2
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
Mind

Пользуешся функцией:
Код:
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);
Она вернёт тебе handle окна. Через него ты сможешь послать сообщение.
Только этот поиск не гарантирует тебе уникальности, т.к. теоретически может быть несколько окон с именем "Test".


Цитата:
I eshe, kakoi cod pri nazhatii klavishi Enter? VK_ENTER?
VK_RETURN (0D)

Цитата:
Nado poslat etomu oknu, chto klavisha Enter nazhata.
Kak eto sdelat?
Сформируй мессадж WM_KEYDOWN (т.е. создай нужные WPARAM и LPARAM ) и пошли всё это при помощи SendMessage
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 13.06.2004, 02:33     # 3
Mind
Junior Member
 
Аватар для Mind
 
Регистрация: 05.02.2004
Адрес: Indianapolis
Сообщения: 64

Mind Путь к славе только начался
Vot moi kod:
HWND hwnd1;
hwnd1=(HWND)FindWindow(NULL,cap1);
//Gde cap1 eto CString=_Window's Title_
//Vmesto NULL dolzhen bit kakoi-to class. A esli ya ego ne znau?
::SendMessage(hwnd1,WM_KEYDOWN,VK_RETURN,0);
//Tak nado otpravlyat?
Mind вне форума  
Старый 13.06.2004, 06:56     # 4
Mind
Junior Member
 
Аватар для Mind
 
Регистрация: 05.02.2004
Адрес: Indianapolis
Сообщения: 64

Mind Путь к славе только начался
Кто-нибуд может привести пример исползования функции EnumWindows.
Mind вне форума  
Старый 13.06.2004, 22:24     # 5
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
Mind

В общем всё правильно. По поводу 2го вопроса - смотри MSDN. Там есть всё.
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 14.06.2004, 06:16     # 6
Mind
Junior Member
 
Аватар для Mind
 
Регистрация: 05.02.2004
Адрес: Indianapolis
Сообщения: 64

Mind Путь к славе только начался
Spasibo tebe. Vrode rabotaet. Tolko ya ispolzoval EnumWindows func.

Problema. Kogda posilau messagi chto nazhata klavisha Enter ili bukva v Notepad, on nichego ne delaet. Proboval vse. Prikruchival HWND k CWnd(SubclassWindow).
I eto ::PostMessage(hWnd,WM_KEYDOWN,VK_RETURN,0);.
Dumal mozhet eto iz-za togo chto okno ne aktivizirovanno. Aktiviziroval(wnd1.SetForegroundWindow(). Ne rabotaet. PLZ HELP!!!
Mind вне форума  
Старый 14.06.2004, 11:24     # 7
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Для эмуляции нажатия клавиш можно еще пользоваться функцией:
VOID keybd_event(
BYTE bVk,
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);

Или для Win NT/2000/XP :
UINT SendInput(
UINT nInputs,
LPINPUT pInputs,
int cbSize
);

Все это работает для активного окна. То есть сначала активируешь окно а потом вызываешь эти функции.
__________________
Best Regards
alexey_ma вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 19:46.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.