Как мога да симулирам комбинации от функционални клавиши с помощта на C#?

Надявах се някой да ми помогне със симулиране на комбинация от функционални клавиши в C#, в този случай FN + F4.

Ето какво се опитвам да направя... Имам по-стар нетбук със сензорен екран, на който наскоро инсталирах Windows 8. Има въртящ се екран, така че можете да го сгънете и да го използвате като таблет. Windows 8 работи изненадващо добре на него. Имах няколко дребни проблема, повечето от които успях да разреша, но един остава.

Когато за първи път включите нетбука или го събудите от заспиване, екранът е с 30% яркост и Windows смята, че това е максималната настройка, така че увеличаването на яркостта на екрана чрез нормалните методи не работи. На моя нетбук натискането на FN + F4 възстановява пълната яркост на екрана. Това обаче е леко раздразнение, защото трябва да въртя екрана напред-назад, за да коригирам яркостта с помощта на физическата клавиатура, когато бих искал просто да я оставя в позицията на таблет и да сведа до минимум износването.

Това, което бих искал да направя, е да напиша малко приложение, което да работи при стартиране и да симулира комбинацията от функционални клавиши, така че яркостта да се възстановява автоматично. Всички предложения ще бъдат много оценени. Благодаря.


person user1561302    schedule 13.12.2012    source източник
comment
Въпреки че това не е отговор на вашия въпрос, може би просто използвайте код, който регулира директно яркостта: codeproject.com/Articles/47355/Setting-Screen-Brightness-in-C   -  person myermian    schedule 13.12.2012


Отговори (2)


Клавишът Fn не е клавиш, който се изпраща от клавиатурата към компютъра. Всъщност се използва за промяна на значението на клавишите на клавиатурата (така че клавиатурата изпраща различни сканирани кодове, когато клавишът е натиснат със задържан Fn).

Трябва да можете лесно да напишете проста програма за Windows Forms, която слуша натискането на клавиши и ви показва какво е получено. Регистрирайте се за събитието KeyDown. KeyEventArgs, който вашият манипулатор получава, има различни свойства, които можете да проверите, за да видите какво се получава.

person Paul Ruane    schedule 13.12.2012
comment
Регулирането на яркостта вероятно се извършва на ниво драйвер, получаването на сканирания код няма да помогне много, ако случаят е такъв - person emartel; 13.12.2012
comment
@emartel: Ами на моя лаптоп Acer, използвайки showkey, намаляването на яркостта се регистрира като 0xe0 0x4c надолу, 0xe0 0xcc нагоре, докато същият клавиш () без Fn се регистрира като 0xe0 0x4b за надолу и 0xe0 0xcb за нагоре. - person Paul Ruane; 13.12.2012
comment
Да, но как го инжектирате обратно? - person emartel; 13.12.2012
comment
@emartel: stackoverflow .com/questions/3644881/ - person Paul Ruane; 13.12.2012
comment
@emartel: Ще работи с онези функции на лаптопа, които се изпращат в O/S. Предполагам, че има възможност някои от бутоните да се закачат директно в хардуера. - person Paul Ruane; 14.12.2012

Клавишът FN не е истински клавиш на клавиатурата като другите модификатори (shift, alt, ctrl), нито дали е функционален клавиш като F1 - F12. Клавишът FN е само хардуерен клавиш, който просто казва на хардуера да изпрати различно натискане на клавиш, докато клавишът FN е натиснат.

Така че ще трябва да регулирате яркостта ръчно като "m-y", посочено в коментарите, или чрез някакъв друг механизъм.

Референтна Връзка.

person jmrnet    schedule 13.12.2012