Какво би било необходимо, за да добавите нови модифициращи клавиши към Windows?

От това, което мога да кажа, понятието "Shift", "Alt" и "Control" е доста добре кодирано от самата клавиатура направо през API на OS. Понякога виждам клавишите на Windows, използвани като модификатор, но изглежда не се регистрира като "истински" модифициращ клавиш, както и всеки клавиш на клавиатурата.

Но може ли човек да добави нов модифициращ ключ? Може би в диво и безумно усилие да върнете клавиатурата на космическия кадет? Освен физически модифицирана клавиатура (или може би просто пренасочване на някои неизползвани клавиши), какво друго ще е необходимо: нови драйвери? нови извиквания на API? пълно пренаписване на ОС?

Предполагам, че подобно нещо би било много по-лесно да се направи на операционна система с отворен код, отколкото на Windows, нали?


person CodexArcanum    schedule 01.11.2010    source източник


Отговори (3)


Е, има полза от наличието на стандарт за клавиатури и мишки. Това кара нещата да "работят", без да са необходими специални драйвери или корекции на операционната система. Но това означава, че самите клавиатури и мишки трябва да бъдат стандартизирани, за да могат „просто да работят“.

Така че, ако искате да добавите допълнителен клавиш към клавиатурата - независимо дали е модифициращ клавиш или не - трябва по някакъв начин да го направите полезен, което означава, че приложенията трябва да знаят за това и се нуждаят от начин да бъдат уведомени за това състояние на ключа. За щастие, Windows и други операционни системи с отворен код или не, предоставят разширяем и стандартен механизъм за това: драйвери.

И така, накратко, ще трябва да предоставите драйвер, за да разширите стандартната функционалност на стандартната клавиатура, както бихте имали нужда от драйвер, ако закупите една от онези фантастични мишки, които идват с 19 специални бутона и 3 колела за превъртане вместо стандартните два или три бутона и едно колело за превъртане.

И накрая, ще ви трябват приложения, които са наясно с вашата специална клавиатура. Каква би била ползата от тази модифицирана клавиатура в края на краищата, ако вашето приложение не знаеше нейните суперсили? Единственото нещо, което бихте могли да направите с вашата специална клавиатура, е да създадете горещи клавиши, които включват вашия специален модификатор.

person Mike Dinescu    schedule 01.11.2010

Любопитен съм за причината ти. Всъщност искате ли да използвате и напълно да интегрирате използването на допълнителен модифициращ ключ в ежедневната си употреба на компютър? Ако да, по какъв начин? (Това е чисто любопитство от моя страна; очарован съм от причините или събитията, довели до вашето запитване! И ще обясня защо.)

Позволете ми първо да заявя, че не мога напълно да отговоря на въпроса, който зададохте (какво точно би било свързано с добавянето на модификатор към операционната система), освен да кажа, че ще отнеме много повече работа от това, което вярвам, че всеки човек би могъл да постигне - дори в рамките няколко години (с изключение на някои истински компютърни гении); но в зависимост от причините да питате, мога да ви покажа, че вероятно няма да е необходимо за вашите цели (въпреки че това очевидно е спекулация). И всъщност технически съществуват повече модификатори, но те са почти недокументирани и се използват много рядко.

От доста време си играя с този въпрос. Първото ми смислено въведение в използването на персонални компютри беше с Mac през ранните им години. Mac-овете винаги са имали поне два истински клавиша за модификатор на "знаци"; както и два модифициращи клавиша "command". Мисля, че това разграничение е важно, въпреки че не е типично, изрично обяснено или споменато. В съвременната епоха Mac могат функционално да имат до 5 модифициращи клавиша; въпреки че има някои ограничения за това как те могат да бъдат ефективно използвани за различни цели. *nix операционните системи могат да поддържат огромни 8 модификатора, вярвам. Въпреки това, използването им с модерна клавиатура ще изисква известно пренасочване.

Повечето от моите персонални компютри обаче са базирани на Windows и когато се стигне до това, изглежда, че Windows наистина поддържа само 1 истински клавиш за модификатор на знаци: Shift. Това за мен е абсолютно неприемливо положение! Защо? Трябва да напиша МНОГО повече знаци от това!

Защо? Тъй като имам силен интерес и опит в чужди езици, лингвистика, фонетика и писмени системи. Трябва да мога да въвеждам (без прекомерни затруднения) много повече знаци и символи, отколкото Windows изглежда поддържа. Това обаче е предимно за забавление, така че не е било изключително спешно. И успях да получа достъп до Mac, когато трябва да създавам/редактирам документи, съдържащи практически всеки език освен английски.

И така, в Windows клавишът Alt се нарича вътрешно клавиш за меню, тъй като първоначално е бил използван за достъп и навигация в командните менюта на приложенията в дните преди Windows да приеме използването на мишка. И все още функционира в това си качество. Технически, той може да функционира само като модифициращ клавиш, ако се използва заедно с Control. ISO клавиатурите (европейски/чуждестранни клавиатури) често имат клавиш, наречен AltGr, вместо клавиша Alt от "дясната страна"; това означава алтернативна графика и се използва за картографиране на допълнителните символи и букви с ударения, изисквани от други езици, към „обикновена“ клавиатура, като се прави достъпен още един цял слой или два от цялата клавиатура, което ефективно удвоява (или дори утроява или учетворява) броя знаци, които могат да бъдат въведени. Технически, клавишът AltGr е само единият клавиш, който задейства клавишите Alt и Control едновременно за удобство на пръстите на машинописците.

Всъщност не се нуждаете от ISO клавиатура, за да използвате AltGr и за достъп до тези допълнителни знаци; те обаче го правят много по-лесно, тъй като обикновено имат символите, които всеки клавиш може да произведе, отпечатани върху самия ключ, както правим ние. Всичко, което наистина трябва да направите, е да активирате клавиатурна подредба за един от тези езици (които са вградени във всички версии на Windows). И вероятно ще трябва да отпечатате диаграма на клавиатурата, която решите да използвате. Или направете стикери, които да поставите на клавиатурата си, докато се научите да въвеждате всички символи, от които се нуждаете.

Между другото, ключът на Windows Е пълноценен модифициращ ключ, но използването му е ограничено за Microsoft да делегира, както сметне за добре. (Всъщност те определиха тези комбинации, използващи числа, като "безплатна игра", която производителите на оригинално оборудване могат да определят в своите системи). Той е проектиран като модифициращ ключ на хардуерно ниво.

Технологията, която поддържа повечето клавиатури, обикновено работи добре за стандартно използване на клавиатурата (което обикновено не включва игри) за писане, въвеждане на текст/данни, проучване и т.н. Но за да се намалят разходите и да се опрости, те са проектирани така, че клавишите, които ще се използват като модификатори, могат да бъдат натиснати заедно и разпознати заедно с поне един или два други клавиша. Въпреки това, бързо се натъквате на проблеми, ако се опитате да преместите модификатори към други клавиши на клавиатурата и все още се надявате да задействате „акордирани“ бързи клавиши (2, 3 или повече клавиша, натиснати наведнъж), защото тези клавиши не са проектирани и не са предвидени хардуера да функционират като модифициращи клавиши. Ключът на Windows – въпреки че не се използва по този начин в Windows (засега); има технически изисквания.

Освен това клавиатурите на Windows могат да бъдат включени в Mac и ще работят добре. Клавишът Windows съответства на клавиша Apple Command; който се използва широко от повечето приложения за задействане на сложни клавишни комбинации/клавишни комбинации - и прави това без проблем.

И така, въпреки твърденията в друг отговор; всъщност е много по-лесно да "добавите допълнителен клавиш" - или няколко към вашата клавиатура. Без необходимост от персонализирани драйвери или дори нещо друго освен вградения драйвер за ОС. Всичко, което трябва да направите, е да посочите клавиша като един от шепата допълнителни клавиши, намерени (и разпознати от Windows) на различни чужди клавиатури.

Има три видни типа клавиатури: ANSI (американска), ISO (европейска) и JIS (японска); друг често срещан вариант е бразилската клавиатура; обикновено се нарича Abnt (което всъщност се отнася до основното "име" на допълнителните клавиши, открити на тези клавиатури: VK_ABNT_C1 и C2).

Технически има един или два уникални клавиша, открити на ISO клавиатури (известни като VK_OEM_8 и VK_OEM_102). А японските клавиатури могат да имат повече от 8 допълнителни клавиша; обаче те обикновено имат 5-6 допълнителни клавиша, два от които са специални клавиши, използвани в различните методи за преобразуване на няколко десетки натискания на клавиши на клавиатурата в една от няколко хиляди сложни идеограми. Другият е клавиш МОДИФИКАТОР! Корейските клавиатури също го включват. Работи като CapsLock, но вместо да превключва на главни букви, превключва на корейската азбука или японските срички (защото всички компютри все още изискват клавиатура, която може да въвежда латиница за пароли и т.н., доколкото знам). Но става много досадно и разочароващо за потребителите, които постоянно сменят системите за писане, да трябва да превключват клавиатурната подредба напред-назад. И така, те решиха проблема с ключ за модификатор на заключване, който често има LED светлина, точно като CapsLock, за да предостави прости, незабавни визуални знаци за това коя система за писане ще бъде произведена.

Друг тип японска клавиатура е разработен специално за лесно и бързо писане. Въпреки че никога не е получила истински успех (имаше много различни идеи и модели през 80-те и 90-те години, преди нещо да бъде стандартизирано), тази клавиатура на Fujitsu остава популярна и любима за писатели и всеки, който създава големи количества текст на японски.

Специалното му качество е, че има 3 големи клавиша, които заместват клавиша за интервал, само по-малкият централен клавиш произвежда интервали, другите два са "клавиши за модификатор на палеца", които са много удобни за използване без акробатика с пръсти; те дори могат да бъдат комбинирани с shift сравнително удобно и по този начин да осигурят изключително голям набор от физически въвеждащи знаци. Технически тези два модификатора се поддържат и от Windows! Въпреки това поддръжката е оскъдна и документацията практически не съществува (поне извън Япония).

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

Всъщност е възможно в Windows да имате до 15 слоя на вашата клавиатура (включително базовото ниво), всеки от които трябва да се активира чрез уникална комбинация от модифициращи клавиши. Всъщност има около 48 възможни (валидни) комбинации с: shift, control, Alt-Control, kana, loya и roya; така че не може да се използва никъде близо до теоретичната възможност.

Използвах специална клавиатурна подредба, която разработих, която използва всички тези клавиши и има 15 слоя, които ми позволяват лесно да съставям текст на всеки език, използвайки латинската азбука (включително всякакви ударени или модифицирани букви), както и международната фонетична азбука (IPA), който се използва за прецизно документиране в писмена форма на всеки език или диалект на Земята. Също така имам няколко слоя, посветени на писане на етиопски (живях там като дете); освен това имам слоеве за елементарен гръцки, иврит и арабски, както и слой за символи. Освен това имам много мъртви клавиши, програмирани в моята клавиатура — които са идеални за букви с ударения (първо натискате клавиша за конкретна маркировка с ударение, но нищо не се случва, докато не се натиснат следващите (или понякога 3-5 клавиша) (ако мъртвите клавиши са "верижни", за да добавят няколко знака към една буква, както виетнамският прави до крайна степен); когато истинската буква бъде напечатана, тя ще има всички тези ударения или знаци, подредени/приложени, ако е възможно.

Какво ви е необходимо, за да направите това възможно?

Малък софтуер, наречен KbdEdit (премиум версията), който е на МНОГО разумна цена (IMHO).

Има пробна версия, която можете да проверите безплатно, разбира се; уебсайтът е ПЪТЕН с полезна, завладяваща и често неясна информация за клавиатури.

Друг (безплатен) софтуер, който ви позволява да правите всякакви неща, включително да използвате всички модифициращи клавиши МНОГО по-свободно за практически всякакви цели, също е наличен. Нарича се AutoHotKey. Използвам го от години, за да правя най-различни изящни неща (всъщност е част от моята система за пренасочване на клавиатурата ми за 3 допълнителни модифициращи клавиша (позволява ми да използвам „двойно“ клавиши, за да не загубя функционалност. Например, Физически преназначих двата японски модификатора на палеца към моите клавиши Alt. Никога не използвам клавишите Alt за достъп до менютата в приложенията на Windows; но използвам софтуер, който използва клавишни комбинации, които съдържат Alt. Въпреки това, както може би си спомняте , Alt винаги трябва да се използва с Control, за да правите нещо различно от навигация в менюто. Така че не използвах никакви комбинации от Control с модификаторите на палеца на моята персонализирана клавиатурна подредба (което не представляваше предизвикателства). И имам AutoHotKey, конфигуриран да преобразувам едновременното натискане на контрола и който и да е модификатор на палеца в "control-alt" и ако случайно имам нужда само от Alt, натискането на Windows+или модификатора на палеца се превежда в Alt (тъй като никога не съм срещал преки пътища, които изискват едновременно Windows и Всичко това не създаде конфликти.

Аз също ПРЕЗИРАМ тракпада на моя лаптоп; опитът да се използва за превъртане е непостоянен и вбесяващ; освен това не е в състояние да произведе средно щракване, което използвам широко. И така, пренасочих този ключ, който никой не използва, който отваря „контекстното меню“ (защото е много по-лесно просто да „щракнете с десния бутон“, за да отворите това меню), обикновено наричан „Ключ за приложение“. Ако го задържа натиснат (като персонализиран модификатор), той преобразува натисканията на клавишите със стрелки в движение на колелцето за превъртане (по оси нагоре-надолу или наляво-надясно) и преобразува докосването на интервала в средно щракване. Освен това имам някаква функция или бутон, програмиран да се задейства от всички други клавиши, които мога лесно да достигна с тази ръка, докато държа този „фалшив“ персонализиран модификатор. Мога да контролирам медийните си приложения, като симулирам медийни клавиши, които малкият ми лаптоп няма, и множество други страхотни неща.

AutoHotKey вероятно ще може да се приспособи за повечето причини, поради които искате да добавите допълнителен модифициращ клавиш към клавиатурата си, без всъщност преминавайки през цялата тази бъркотия!

person AuralArch    schedule 15.07.2018
comment
Благодаря ви много за редактирането и коригирането на моя отговор! Оценявам това много. - person AuralArch; 16.07.2018

Windows W32 API дефинира кодове за виртуален ключ. Той е 8-битов, осигурява 256 стойности и има някои пропуски в таблицата.

Съобщение WM_KEYDOWN работи с тези кодове.

Съвременните клавиатури позволяват откриване на до 6 едновременни натискания на клавиши, но има N-Key Rollover и Key Ghosting проблеми, които трябва да знаете.

.Net API излага само Alt/Shift/Control като модификатор.

С две думи - много основни API, предоставени от Microsoft, прехвърлят Alt/Shift/Control като модификатор, дори ако модерните клавиатури позволяват близо 5 едновременни модификатора в допълнение към натискането на клавиш.

person gavenkoa    schedule 27.01.2017