Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

(изменено)

http://blogs.msdn.co.../03/589423.aspx

ктонибудь может объяснить, почему все перестаёт работать если поменять sethook на

  private static IntPtr SetHook(LowLevelKeyboardProc proc, int ext_keyID)
	{
		using (Process curProcess = Process.GetCurrentProcess())
		using (ProcessModule curModule = curProcess.MainModule)
		{
			return SetWindowsHookEx(ext_keyID, proc,
				GetModuleHandle(curModule.ModuleName), 0);
		}
	}

соответственно вызов в мейне будет такой

IntPtr _hookIDctrl = SetHook(_proc, 16);

по сути ничего особо не меняется, только убирается глобальная переменная и за место нее кастомная

и почему не канает делать винформ с аутпутом = консоль?

бтв этот код работает не только для интера, но вообще для всех клавиш, вот они работнички майкрософта :buba:


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение

С консолью все просто. Перед тем как ее использовать, нужно ее создать: AllocConsole и ее семейство.

 

А с хуком - непонятен вопрос. Все перестает работать - это расплывчатое определение. Когда я работал с кудой, то все переставало работать - это или перезагрузка дравера по таймауту, или ребут.

Совсем недавно все переставало работать, когда процесс жрал 7гб оперативы и память начинала пэйджиться. Мануал ребут.

Поэтому лучше уточни, как Именно у тебя Всё не работает.

бтв, я давно уже в шарпе не писал, но может все же стоило бы выделить под поинтер память? Или оно и так работает.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Ну я жмакал кнопки - они выводились в консольке. Суть была что этот хуюк улавливает сингл нажатие шифта и контрола и может их обрабатывать, при этом пох активна консоль или нет. Тот же регистерхоткей этого не может.

Я вот переписал под это обработчик (выводим только если нажимается шифт или контрл, еще раскладку переключал заодно), все работало. Решил поменять вызов, сетхук вот етот - все, не работает. Я думал, вот указал автор этого кода вручную код 13 - это интер - значит оно на интер и реагировать должно, к нему привязано должно быть. Регистрируется то тоже всё на интер. Только вот отлавливались и выводились вообще все кнопки.

Причем понял я из-за чего все накрылось тазом только через час гдето

С консолью все просто. Перед тем как ее использовать, нужно ее создать: AllocConsole и ее семейство.
И из-за этого я не должен так делать? Мне прям буржуи так и написали - First off, you should not use console output in win forms.
Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение
(изменено)

http://blogs.msdn.co.../03/589423.aspx

ктонибудь может объяснить, почему все перестаёт работать если поменять sethook на

  private static IntPtr SetHook(LowLevelKeyboardProc proc, int ext_keyID)
	{
		using (Process curProcess = Process.GetCurrentProcess())
		using (ProcessModule curModule = curProcess.MainModule)
		{
			return SetWindowsHookEx(ext_keyID, proc,
				GetModuleHandle(curModule.ModuleName), 0);
		}
	}

соответственно вызов в мейне будет такой

IntPtr _hookIDctrl = SetHook(_proc, 16);

по сути ничего особо не меняется, только убирается глобальная переменная и за место нее кастомная

и почему не канает делать винформ с аутпутом = консоль?

бтв этот код работает не только для интера, но вообще для всех клавиш, вот они работнички майкрософта :buba:

Может потому что функция setWindowsHookEx не ожидает приёма первым аргументом флага = 16?

Судя по докам, доступные значения: 4,12,5,9,11,3,1,0,2,13,7,14,-1,10,6

И вообще лучше всегда пользуйся константами, а не магическими переменными.


Изменено пользователем DIMAN123456789

Поделиться сообщением


Ссылка на сообщение

Дак это получается вообще не код клавиши? Ну пздц :trollface:

Поделиться сообщением


Ссылка на сообщение
(изменено)

бтв да.

HHOOK WINAPI SetWindowsHookEx(

_In_ int idHook,

_In_ HOOKPROC lpfn,

_In_ HINSTANCE hMod,

_In_ DWORD dwThreadId

);

 

хуету ты сделал какую-то

 

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение
(изменено)

То есть я поменял его 13 на моё 16, и все, пиздец?

Корочи, есть идеи как устроен пунто свитчер? Вот с этой хуергой невозможно ввести большую букву - на шифте то бинд. Но всякие комбинации с контролом работают. Какой-то там хитровыебанный эвент стоит :hmm:


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение

Так влезь под дизасмом и посмотри какие он функции импортит.

Лично я себе это говно даже в тестовых целях на комп ставить не буду.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Я тоже нехочу ставить

http://forum.ixbt.co...cgi?id=15:66130

решил вот сам написать, осталось с шифтом (заглавные буквы) разобраться


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение

А словари какие использовать собираешься то? Он же вроде именно так таботает: быстрым поиском по словарям, и если не может найти слово после некоторого количества миссов, переключает словарь и пытается найти там.

Поделиться сообщением


Ссылка на сообщение

Да мне на это пох (никогда не включал эту штуку), главное язык переключать одной кнопкой, это имба

Поделиться сообщением


Ссылка на сообщение

Да мне на это пох (никогда не включал эту штуку), главное язык переключать одной кнопкой, это имба

Кроме пд язык в принципе не переключаю. В чем имба то :dunno:

Поделиться сообщением


Ссылка на сообщение

На винде нельзя дефолтными средствами забиндить смену раскладки на одну клавишу?


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

что значит на одну? на какую именно одну?

Поделиться сообщением


Ссылка на сообщение

то и значит, что забиндить на 1ну клавишу, которую ты не юзаешь:))) или альт+клавиша, можно?


 

4Ht5T.jpg

 

8FegEdj.jpg

Поделиться сообщением


Ссылка на сообщение

дефолтно на одну клавишу нельзя

 

ну а вообще я хз, у меня 4 раскладки и альтшифт вполне устраивает

Поделиться сообщением


Ссылка на сообщение

Всем привет! Нужна программа для построения блок схем, паскаль и С, сам пользуюсь визио но уже поднадоело, хочу просто написать код и получить блок схему! И чтобы всё было ровно и правильно и с возможностью переносить блок схему в Ворд, для дальнейшего распечатанья. Сам искал находил хуйню, может кто из вас посоветует.

Поделиться сообщением


Ссылка на сообщение

Всем привет! Нужна программа для построения блок схем, паскаль и С, сам пользуюсь визио но уже поднадоело, хочу просто написать код и получить блок схему! И чтобы всё было ровно и правильно и с возможностью переносить блок схему в Ворд, для дальнейшего распечатанья. Сам искал находил хуйню, может кто из вас посоветует.

Код пишется по блок-схеме, а не наоборот.

Поделиться сообщением


Ссылка на сообщение

Всем привет! Нужна программа для построения блок схем, паскаль и С, сам пользуюсь визио но уже поднадоело, хочу просто написать код и получить блок схему! И чтобы всё было ровно и правильно и с возможностью переносить блок схему в Ворд, для дальнейшего распечатанья. Сам искал находил хуйню, может кто из вас посоветует.

Код пишется по блок-схеме, а не наоборот.

У нас сейчас элементарные задачки, так что смысла не вижу, но выходят порой на 70 строк. Так что делать блок схему очень нежелательно хочется халявы :rickroll:

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...