Jump to content

Вопрос по взаимодействию Локона и клавиатуры


Recommended Posts

Posted

Добрый день!

 

Не знал в какую ветку задать вопрос.... решил сюда.

Я начинающий программист (подчеркиваю - "начинающий":) ), и решил написать простенькую программку для приминения совместно с ЛО. Идея проста: программа должна перехватывать нажатие клавиши и эмитировать (генерировать, симулировать) другое нажатие клавиши. Хочу отметить, что пишу я пока только на языке C#. Воспользовался API функцией:

[size=2]keybd_event([/size][size=2][color=#008080]byte[/color][/size][size=2] bVk, [/size][size=2][color=#0000ff]byte[/color][/size][size=2] bScan, [/size][size=2][color=#008080]UInt32[/color][/size][size=2] dwFlags, [/size][size=2][color=#008080]IntPtr[/color][/size][size=2] dwExtraInfo);[/size]

Но ЛО, тупо игнорирует "мое творение". Что самое интересное, что нажатия клавишь генерируется т.е. программа работет. Например, GTA SanAndreas, получает эти нажатия клавишь, а ЛО нет. Полазив по форумам программистов, наткнулся на такую фразу "Наверняка игра работает не с виндозными сообщениями, а с DirectInput из DirectX.". Так ли это? И если нет, то тогда в чем может быть дело?

 

P.S. Только не спрашивайте зачем мне это, устал уже объяснять:) . Если прогу удасться сделать более-менее достойную, то выложу...

"Мы не можем похвастаться мудростью глаз

И умелыми жестами рук.

Нам не нужно все это, что бы друг друга понять"

Виктор Цой

Posted

Макс, ты си освоил?! Поздравляю!!!

Тяжелая поступь,

Суровые лица

Штурмовики идут похмелиться

Posted

с newview глюков много, особенно в ЛО, тем полно в разделе Баги и проблемы. Может человек без глюков сделает?;)

 

PS: может и себе заделать эдакую программулину, типа нажал одну кнопку и сразу типа некий скрипт запустился для запуска двигателей :)

[sIGPIC][/sIGPIC]

«Я лично вообщем-то летал. У меня 42 вылета, и каждый раз меня сбивали. Если честно говорить, то в общем-то я ни разу сам не посадил самолет»

 

© Адмирал Бенсон

  • ED Team
Posted

Достойное применение шарпу.

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Posted
Достойное применение шарпу.

 

:megalol: Не, ну ненада так...А то от смеха рвение к программированию и полетам пропадет...:D

[sIGPIC][/sIGPIC]

«Я лично вообщем-то летал. У меня 42 вылета, и каждый раз меня сбивали. Если честно говорить, то в общем-то я ни разу сам не посадил самолет»

 

© Адмирал Бенсон

Posted
А зачем огород городить? Есть же newview та же..

 

Правильно, Змей, НВ вполне хватает - и для обзора и для эмуляции кнопок.

  • ED Team
Posted
Добрый день!

 

Не знал в какую ветку задать вопрос.... решил сюда.

Я начинающий программист (подчеркиваю - "начинающий":) ), и решил написать простенькую программку для приминения совместно с ЛО. Идея проста: программа должна перехватывать нажатие клавиши и эмитировать (генерировать, симулировать) другое нажатие клавиши. Хочу отметить, что пишу я пока только на языке C#. Но ЛО, тупо игнорирует "мое творение"... Что самое интересное, что нажатия клавишь генерируется т.е. программа работет. Например, GTA SanAndreas, получает эти нажатия клавишь, а ЛО нет. Полазив по форумам программистов, наткнулся на такую фразу "Наверняка игра работает не с виндозными сообщениями, а с DirectInput из DirectX.". Так ли это? И если нет, то тогда в чем может быть дело?

1. ЛокОн действительно работает с устройствами ввода через DirectInput. Поэтому перехватывать сообщения Windows бесполезно - ЛокОн их не обрабатывает, а работает с драйверами устройств через COM-интерфейсы DirectInput.

2. Как программист программисту от души советую держаться по возможности подальше от специфических языков программирования фирмы Microsoft.

3. Наш симулятор все шире использует скриптовый язык Lua. Если уж идти по тернистому пути модификации нашего симулятора, то начинать его лучше всего с изучения данного языка.

4. Программа обработки и переназначения ввода в ЧА целиком написана на Lua. Если ее разрешат выложить в исходном виде, то вносить модификации будет совсем просто.

Valery Blazhnov

Eagle Dynamics Veteran

Posted

...

4. Программа обработки и переназначения ввода в ЧА целиком написана на Lua. Если ее разрешат выложить в исходном виде, то вносить модификации будет совсем просто.

 

Вот это было бы очень хорошо!!

Posted

2. Как программист программисту от души советую держаться по возможности подальше от специфических языков программирования фирмы Microsoft.

А что так, если не секрет? Или имелось в разрезе использования с ЛО?

Всё сказанное автором - вымесел, и не может быть использовано как доказательство в суде.

Мой блог | My blog

Posted
А что так, если не секрет? Или имелось в разрезе использования с ЛО?

пословица есть такая старая "было у отца три сына - двое умных, а третий изучал си-шарп..."

  • Like 1

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

  • ED Team
Posted
А что так, если не секрет? Или имелось в разрезе использования с ЛО?

Нет, дело не в ЛО. Microsoft часто выдумывает нечто специфическое, несовместимое с другими ОС, громоздкое и неудобное. Учиться программировать на C# - это IMHO с самого начала заведомо прививать себе дурной вкус. Начинающий программист (если он действительно программист) должен изучать C/C++. Затем, для повышения мощи, можно добавить какой-нибудь кросс-платформенный скриптовый язык типа Python или Lua. Впрочем, дело хозяйское.

Valery Blazhnov

Eagle Dynamics Veteran

Posted

Возможно, в низкоуровневых приложениях типа ЛО, где требуется математика, просчеты, работа с памятью - да. А вот писать прикладное ПО на c\c++ - дорогое удовольствие. И это даже не ИМХО.

А вот к скриптовым языкам у меня вообще антипатия. Так уж сложилось. Ибо медленно, неуклюже. Хотя сам 95% пишу на скриптах. Но это специфика профессии - сисадмин :)

И кстати меня очень удивило, что новый движок будет не на DX (хотя возникла мысль, что это сделано для кросс-платформенности).

Прошу прощения модераторов, всё, больше флеймить не буду.

Всё сказанное автором - вымесел, и не может быть использовано как доказательство в суде.

Мой блог | My blog

Posted

Спасибо за ответ и отдельное спасибо за советы! С/С++ у меня в перспективе освоить, а решил я начать с C#, потому что мне сказали что он по проще и он действительно проще (я пробовал программировать на разных языках: С/С++, Паскаль, РНР...). А мне легче учиться по принципу "от простого к сложному".

"Мы не можем похвастаться мудростью глаз

И умелыми жестами рук.

Нам не нужно все это, что бы друг друга понять"

Виктор Цой

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...