Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» C++ WinAPI

Автор: redp
Дата сообщения: 06.11.2003 16:37
2KubanovOV
см. описание ф-ции SetWindowsHookEx, а также читай Рихтера - у него там все подробно разжевано
генерация сообщения от клавиатуры - через keybd_event
от мыши - соотв-но mouse_event
Автор: mihas83
Дата сообщения: 08.11.2003 15:42
redp

Цитата:
также читай Рихтера - у него там все подробно разжевано
генерация сообщения от клавиатуры - через keybd_event
от мыши - соотв-но mouse_event

Действительно, не "превзойденная" классика...
KubanovOV Тем более есть на русском (и даже в електронном виде).
Автор: KubanovOV
Дата сообщения: 10.11.2003 09:38
Спасибо. Обязательно почитаю. А можно ли найти эту книгу в интернете ?
Автор: mihas83
Дата сообщения: 10.11.2003 09:43
KubanovOV

Цитата:
А можно ли найти эту книгу в интернете ?

Да, есть много ссылок... По-моему, даже на нашем форуме...
Автор: vito333
Дата сообщения: 16.11.2003 17:43
такой вопрос - как отследить режим вставка/замена в ричедите?
C и WinAPI ...
Автор: vito333
Дата сообщения: 18.11.2003 18:35
в общем несложно - GetKeyState(VK_INSERT), и переключение из проги (из статусбара) - легко, но вот какой глюк - при выходе из проги в режиме замена (а окно - ричедит) при повторном запуске определяется опять режим замены (как запоминется), хотя в ричедит-окне - всегда сначала режим вставки - как будто в риче свой режим вставки-замены, а в винде свой.
нет ли у кого каких мыслей?

Добавлено
в общем не выходит корректное отображение режима ...
Автор: vito333
Дата сообщения: 24.11.2003 00:12
в общем сделал просто перехват нажатия клавиши Insert - все вышло правильнои корректно ...
Автор: aplex
Дата сообщения: 31.12.2003 19:54
У меня есть насущный вопрос: как для некой проги и ее окошек узнать используемые параметры API функции SendMessage плюс возвращаемое ею значение ? (т е чтобы потом посылать этим окошкам с помощью SendMessage сообщения)
Или где об этом прочесть ?
Спасибо!
Автор: TeXpert
Дата сообщения: 01.01.2004 20:55
aplex
У тебя куча возможностей, я укажу лишь на некоторые:
а) Если не хочешь сам программить:
1) используй Spy++ из состава Visual Studio -- ты можешь наблюдать за всеми (если надо -- фильтровать) сообщениями, и возвращаемыми значениями;
2) используй SoftICE -- ты можешь поставить крюк на SendMessage;
б) Если хочешь и можешь программировать, то можно:
1) захватить оконную процедуру и перехватывать какие хочешь сообщения;
2) захватить саму функцию SendMessage.
Последний пункт, вероятно, самое разумное для твоих целей.

Очень рекомендую книгу Рихтера, 4-е издание, там есть про перехват функций API. Как захватить оконную процедуру, есть во 2-м издании.
Автор: mihas83
Дата сообщения: 02.01.2004 15:16
TeXpert

Цитата:
Очень рекомендую книгу Рихтера, 4-е издание, там есть про перехват функций API

Солидарен. Очень подробно и толково... И не только в этом вопросе...
К стати, и об альтернативах SendMessage()...
Классика есть классика...
Автор: aplex
Дата сообщения: 06.01.2004 17:50
TeXpert


C Visual Studio все понятно. Увесистая вещь.

А где брать SoftICE ?
Автор: mihas83
Дата сообщения: 06.01.2004 18:59
aplex

Цитата:
А где брать SoftICE ?

Почитай здесь:
http://forum.ru-board.com/topic.cgi?forum=35&topic=12101&start=100#lt
А "подучиться" можна здесь:
http://forum.ru-board.com/forums.cgi?action=filter&forum=5&filterby=topictitle&word=SoftICE+
Автор: TeXpert
Дата сообщения: 07.01.2004 04:02
aplex

Цитата:
C Visual Studio все понятно. Увесистая вещь.

Зачем так сразу драматизировать-то?
Spy++ может и отдельно работать! Я её запускаю и с CD. Весит совсем мало (это вам не продукт Delphi!).
Автор: mihas83
Дата сообщения: 07.01.2004 11:29
Если тебя "смущают" размеры, многo интересных, маленьких "вещей" найдешь здесь: http://sysinternals.com/
Автор: ShIvADeSt
Дата сообщения: 08.01.2004 04:14

Цитата:
Весит совсем мало (это вам не продукт Delphi!)

Хоть и не в тему, но почему Дельфи ассоциируется с толстыми продуктами. Ведь никто не запрещает писать на АПИ с использованием Дельфи. Тогда проги получаются 16 кб. Просто дело не в том на чем пишешь, а как. Сорри за оффтопик
Автор: mihas83
Дата сообщения: 08.01.2004 07:45
ShIvADeSt

Цитата:
Ведь никто не запрещает писать на АПИ с использованием Дельфи. Тогда проги получаются 16 кб.

Никто запрещает писать на АPI и в МFC... Ну а вот, на счет 16 кб - явно "загнул"... Это не больше "Хелло, World!"?
Автор: aplex
Дата сообщения: 08.01.2004 20:46


Стянул SoftICE v4.2.7 (build 562) извлеченный из Numega Driver Siute v2.7 build 562 с http://reversing.kulichki.net/ . Интерфейс совсем не дружелюбный.
Совершенно непонятно как отлавливать параметры SendMessage. И еще кроме prog.exe требуются debug file и NMS file. Где брать не знаю. Помогите кто знает!
Здесь http://forum.ru-board.com/topic.cgi?forum=5&topic=3086#lt я тоже спросил, но там постятся от силы раз в месяц.
Автор: ShIvADeSt
Дата сообщения: 09.01.2004 01:06
mihas83

Цитата:
Это не больше "Хелло, World!"?

да нет, эта прога Process Viewer. Правда не мной написана. Но на Дельфи.

Автор: TeXpert
Дата сообщения: 09.01.2004 03:40
mihas83

Цитата:
Если тебя "смущают" размеры, многo интересных, маленьких "вещей" найдешь здесь: http://sysinternals.com/
Что же ты winternals-то забыл? А так, даже ассемблерщики, к твоему сведению, устраивают соревнования на самый короткий код, борясь буквально за каждый байт!

ShIvADeSt

Цитата:
Хоть и не в тему, но почему Дельфи ассоциируется с толстыми продуктами. Ведь никто не запрещает писать на АПИ с использованием Дельфи. Тогда проги получаются 16 кб. Просто дело не в том на чем пишешь, а как.
Согласись, что этот продукт породил пренебрежение к стилю (вернее, стимулирует плохой стиль), когда не задумываются о качестве программ. Раз-два, накидал компонент, и прога готова! Эт то же самое, что гурману предлагать Макдоналдс. Прошу прошения за офтоп.

aplex

Цитата:
Интерфейс совсем не дружелюбный.
Совершенно непонятно как отлавливать параметры SendMessage. И еще кроме prog.exe требуются debug file и NMS file. Где брать не знаю. Помогите кто знает!
Тут вам не там. А если серьёзно, читай руководство о 200 примерно страниц -- много полезного узнаешь, а без этого и нет смысла "софтайсить". Я и не утверждаю, что надо от корки до корки. Причём, есть и переводы, настолько это толковая вещь.
Автор: mihas83
Дата сообщения: 09.01.2004 10:33
TeXpert

Цитата:
Что же ты winternals-то забыл? А так, даже ассемблерщики, к твоему сведению, устраивают соревнования на самый короткий код, борясь буквально за каждый байт!

С ассемблером все понятно... Растолкуй свою мысль о winternals...
ShIvADeSt
Цитата:
...эта прога Process Viewer

К стати, очень сильная, толковая реализация Process Explorer v8.10 есть на цитируемом мной выше http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
Автор: aplex
Дата сообщения: 09.01.2004 20:20
TeXpert



Цитата:
читай руководство 200 примерно страниц -- много полезного узнаешь


Меня тут на другом форуме просвятили, что искать значения параметров wParam и lParam и пр дело безнадежное и никакие утилитки тут не помогут. В случае с стандартными сообщениями отослали к MSDN, этого еще не хватало....Руководство ты имеешь ввиду книгу Рихтера ? Так есть ли смысл ?...
Автор: mihas83
Дата сообщения: 09.01.2004 20:58
aplex

Цитата:
Руководство ты имеешь ввиду книгу Рихтера ? Так есть ли смысл ?.

Он имеет в виду SoftICE... А книгу Рихтера читать однозначно стоит... Будешь всесторонне подкован во всей "кухне" Windows...

Цитата:
Меня тут на другом форуме просвятили...
Кто и где?
Автор: TeXpert
Дата сообщения: 09.01.2004 23:04
mihas83

Цитата:
Растолкуй свою мысль о winternals...

Имею в виду, что того же Руссиновича, утилиты уже коммерческие, правда многие объединены в пакеты. Например, Filemon Enterprise Edition, в виде одного файла (очевидно, драйвер он запаковал в exe).

aplex

Цитата:
Меня тут на другом форуме просвятили, что искать значения параметров wParam и lParam и пр дело безнадежное и никакие утилитки тут не помогут.
Брешут. Сам пользовал Spy++, да и SoftICE тебе позволяет всё, при наличии желания и терпения (не берусь сказать, что тут важнее). Да и говорил о перехвате оконной процедуры или же функции SendMessage.


Цитата:
В случае с стандартными сообщениями отослали к MSDN
Ну, тут я тебе не помогу -- MSDN весьма полезная вещь, правда, надо уметь искать; а с таким подходом --

Цитата:
этого еще не хватало
ты рискуешь ничему не научиться!


Цитата:
Руководство ты имеешь ввиду книгу Рихтера ?
Уже ответил mihas83.
Автор: vito333
Дата сообщения: 10.01.2004 07:38
да, кстати, еслиу кого завалялись какие-либо исходники на чистом WinAPI (С, Delphi) - киньте, если не трудно, на vito@rbcmail.ru - хоть я и думаю, что стянул с сети все, что смог (типа исходников примеров к книгам, или исходников Breda) - наверняка ошибаюсь и что нибудь интересное увижу
Автор: mihas83
Дата сообщения: 10.01.2004 10:10
vito333
Цитата:
...я и думаю, что стянул с сети все...
Скорее всего ошибаешься, т.к. это практически невозможно... А в каком направлении WinAPI твой интерес?
Автор: aplex
Дата сообщения: 10.01.2004 10:31
mihas83


Цитата:
Кто и где?

Здесь: http://www.compexp.ru/cgi-bin/ikonboard/topic.cgi?forum=6&topic=4
Автор: vito333
Дата сообщения: 10.01.2004 14:12
mihas83
предпочитаю чистый С и WinAPI, в любом направлении
Автор: mihas83
Дата сообщения: 10.01.2004 14:30
aplex
Цитата:
Здесь:
Не хочу оспаривать точность ответов в "молодом" форуме...
Но еще раз тот же совет: книгу Рихтера читать однозначно надо (и не только ее)...
Автор: TeXpert
Дата сообщения: 10.01.2004 23:36
aplex

Цитата:
Меня тут на другом форуме просвятили, что искать значения параметров wParam и lParam и пр дело безнадежное и никакие утилитки тут не помогут.

Я посмотрел -- это ты перепутал, ответивший не виноват, так что будь внимателен.

Вот цитаты оттуда:

Цитата:

AlexeyPP:
> А для пользовательских сообщений ничего сказать нельзя ....
А есть стандартные средства, утилитки там какие-нибудь ?

Eugene:
И вторая часть вопроса.
Ну кто ж знает, что я передаю в качестве wParam и lParam. Это может быть что угодно и никакие утилитки тут не помогут.

Он имел в виду, как и сказал, пользовательские сообщения.

Пока не проштудируешь Рихтера, забудь о таких вещах. Будешь вечно сам путаться и других путать. Есть ещё книжка весьма полезная (не переведённая), Jeffrey Richter & Jonathn Locke, называется, если не забыл, программирование интерфейса для Windows 95, там описываются вещи, которые нигде больше не найдёшь. В том числе, как ставить грамотно ловушки -- функцией SetWindowsHookEx, кстати, это даёт тебе ещё один способ перехвата сообщений, посылаемых через SendMessage.

vito333

Цитата:
да, кстати, еслиу кого завалялись какие-либо исходники на чистом WinAPI
Одни примеры к Visual C++ на 400 с лишним метров. Подавиться можно. Кстати, там исходные коды некоторых утилит, например, pwalk, spy++ (кое-что всё же не раскрыт, но тем не менее, очень поучительно). Кстати, Рихтер -- один из соавторов spy++.
Автор: mihas83
Дата сообщения: 11.01.2004 07:06
TeXpert

Цитата:
Пока не проштудируешь Рихтера, забудь о таких вещах. Будешь вечно сам путаться и других путать
Вот и я ему о том же...

Цитата:
как ставить грамотно ловушки - функцией SetWindowsHookEx, кстати, это даёт тебе ещё один способ перехвата сообщений, посылаемых через SendMessage

Об этом же, очень толково есть и в Рихтера - ГЛАВА 22 "Внедрение DLL и перехват API-вызовов", раздел "Внедрение DLL с помощью ловушек" с подробным примером "Утилита для сохранения позиций элементов на рабочем столе" (использует ловушки окон для внедрения DLL в адресное пространство Explorer exe)...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637

Предыдущая тема: посоветуйте книги по SQL


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.