Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SetWindowsHookEx в Console 
:(
    Опции темы
SiTox_
Дата 26.9.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 30.12.2006
Где: Riga

Репутация: нет
Всего: 2



Привет,подскажите пожалуйста

Код

                hKeyboardHook = SetWindowsHookEx(
                    WH_KEYBOARD_LL,
                    KeyboardHookProcedure,
                    Marshal.GetHINSTANCE(
                    Assembly.GetExecutingAssembly().GetModules()[0]),
                    0);

в Windows Forms Application всё работает норм делаю в Console Application 
он выдаёт 0. как вообще сделать не глобальный хук(что бы права админа не нужны были) на Console ? 

PM MAIL   Вверх
dumb
Дата 26.9.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



afaik, хуки и консоль - понятия несовместимые
PM MAIL   Вверх
tol05
Дата 26.9.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



не согласен. Лично хуки ставил и на консоль, и на десктоп... 
не совсем в тему, но избавляет от преклонения перед winforms-ами  smile 
Главная мысль статьи такая: все, что имеет окно (и hWnd) - может принимать сообщения. А консоль его имеет.

SiTox_, в гугле полно информации.



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
dumb
Дата 27.9.2007, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



Цитата(tol05 @  26.9.2007,  20:24 Найти цитируемый пост)
все, что имеет окно (и hWnd) - может принимать сообщения
насколько я понял после беглого осмотра статьи, описываемые там методы используют создание обычного окна из консольного приложения, а не ту "болванку"(окно консоли), которую предоставляет csrss.

Цитата(tol05 @  26.9.2007,  20:24 Найти цитируемый пост)
А консоль его имеет.
цитата из указанной статьи:
Цитата(How To Obtain a Console Window Handle (HWND))
The resulting HWND is not guaranteed to be suitable for all window handle operations.


я, конечно, "перегнул палку" с полной несовместимостью консоли и хуков, но доля правды в этом есть - на консольные приложения обычные хуки не вешаются. а из консоли повесить глобальный хук - можно. в пределах консольного окошка точно работают только _LL хуки, и это объясняется тем, что они "отвязаны" от окон вообще.

код SiTox_'а ставит как-раз _LL хук и, по идее, должен работать. но тут я умываю руки, потому как .net вообще не знаю, и смысл этой "колбасы"(где должен быть GetModuleHandle(0)) до меня доходит с трудом... smile
PM MAIL   Вверх
tol05
Дата 27.9.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Цитата(dumb @  27.9.2007,  02:38 Найти цитируемый пост)
насколько я понял после беглого осмотра статьи, описываемые там методы используют создание обычного окна из консольного приложения, а не ту "болванку"(окно консоли), которую предоставляет csrss.

статья не совсем по теме, я говорил. Просто в ней я нашел здравые рассуждения о различиях консольных и виндовс-приложений, рассуждения о том, так ли велики эти различия.

Цитата(dumb @  27.9.2007,  02:38 Найти цитируемый пост)
цитата из указанной статьи:
Цитата
(How To Obtain a Console Window Handle (HWND))
The resulting HWND is not guaranteed to be suitable for all window handle operations.

вот


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
SiTox_
Дата 28.9.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 30.12.2006
Где: Riga

Репутация: нет
Всего: 2



так я не понял почему мой код не работает ? :(
PM MAIL   Вверх
SiTox_
Дата 29.9.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 30.12.2006
Где: Riga

Репутация: нет
Всего: 2



как можно хук на HWND поставить?
PM MAIL   Вверх
dumb
Дата 30.9.2007, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



Цитата(SiTox_ @  29.9.2007,  21:04 Найти цитируемый пост)
как можно хук на HWND поставить?
GetWindowThreadProcessId
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1016 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.