Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 11:40   #1
WStrukov
Новичок
Джуниор
 
Регистрация: 21.08.2011
Сообщений: 1
По умолчанию Программирование на ассемблере - первые шаги

Здравствуйте, уважаемые участники форума!

Я только начал изучать ассемблер. Тренируюсь на программе "Блокнот" (Программы\Стандартные\Блокнот). Хочу заставить его обработать сообщение, имитирующее нажатие калавиши F5 (в одном из пунктов меню есть один, вставляющий в поле редактирования время и дату).

Посылаю окну "Безымянный - Блокнот" (хэндл окна научился определять) сообщение с помощью функции SendMessage (invoke SendMessage, WM_KEYDOWN, 0074h, 1). Но оно, т.е. окно, не реагирует. Может быть надо обращаться к процедуре окна (DefWindowProc), но я не знаю, как правильно это сделать (запутался в справочной информации). Сообщение, посланное с помощью функции DefWindowProc (invoke DefWindowProc, HWND, WM_KEYDOWN, 0074h, 1 - где HWND - хэндл окна "Безымянный - Блокнот"), тоже не дает результата.

Буду признателен всем, кто ответит мне, за совет, а тем более за строку кода, который действительно работает.

Уточняю свой вопрос: как правильно обратиться к процедуре DefWindowProc уже запущенного приложения, окно которого разместилось на экране монитора, и отправить ей, т.е. процедуре, сообщение, имитирующее нажатие клавиши F5?

Жду ответа и заранее благодарю. С уважением, WStrukov.
WStrukov вне форума Ответить с цитированием
Старый 21.08.2011, 11:48   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
ак правильно обратиться к процедуре DefWindowProc уже запущенного приложения
этого не надо делать.
DefWindowProc-это системная процедура, она общая для всех.
вам надо просто послать верное сообщение верному окну.
проще всего с помощью Spy++(или аналогов) посмотреть какое сообщение посылается при нажатии F5(и кому)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2011, 13:03   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
invoke SendMessage, WM_KEYDOWN, 0074h, 1
это случайно без хендла получилось, или так и пробуете вызвать?
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первые шаги в QBasic teeshka2 Помощь студентам 2 23.08.2010 14:47
первые шаги в с++ ploik Общие вопросы C/C++ 2 16.07.2010 23:35
Первые шаги php Syltan PHP 2 02.01.2010 14:06
Первые шаги trave1er Общие вопросы C/C++ 2 10.09.2008 20:32
Первые шаги в VBA :) rustam_colpal Microsoft Office Excel 12 30.05.2008 09:27