Zmiana funkcji klawisza - 2 klawiatury?

0

Witam, posiadam klawiaturę x7g100, mam też drugą zwykłą klawiaturę. Chciałbym pozmieniać funkcje klawiszy na tej pierwszej klawiaturze, ale na drugiej mają być niezmienione, np. na pierwszej klawiaturze zamiast W ma być strzałka w gorę, a na drugiej ma zostać normalnie, W jako W.

Przegladalem google dotyczace mojego tematu, jednak nic nie znalazlem, poza programem do zmiany klawiszy w systemie, jednak klawisze te zmieniaja się dla dwoch klawiatur...

Zna ktoś program, który spełni moje oczekiwania? Lub jest w stanie napisać coś takiego?

Pozdrawiam.

0

Kombinujesz tak aby podłączyć jednocześnie dwie klawiatury i oboje graczy poruszało by się za pomocą WSAD? Wątpię czy takie coś jest możliwe.

0

Tak, mam podlaczone dwie klawiatury jednoczesnie, ale na jednej maja byc zmienione klawisze WSAD na poruszanie (oraz pare innych klawiszy), a na drugiej chcialbym normalnie pisać...
Mam windowsa 7.
Nie jest to mozliwe..?

0

Można low levelowym hookiem, którego kod nieraz tutaj pokazywałem, przechwycić konkretny klawisz nie puszczając go dalej i zasymulować przedtem wciśnięcie i puszczenie innego. Jednak wątpie czy można rozrôżnić dwie klawiatury na jednym systemie. Dla jednej problemu mając prawa admina lub wyłączone UAC raczej nie ma.

0

Być może jeśli klawiatura ma własny firmware który takie coś umożliwia ale nie wiem czy jakakolwiek klawiatura posiada takie funkcje, jeśli już to pewnie taka za kilka stów.
Dałoby pewnie radę napisać program który by zmieniał te klawisze i jakimś skrótem przywracał domyślne, wtedy nie potrzebowałbyś dwóch klawiatur.

0

Hm, wydaje mi sie ze niektore klawiatury maja swoj firmware gdzie jest mozliwe przypisanie innej funkcji klawiszowi.
Chcialbym uzywac dwoch klawiatur, wtedy bylo by duzo wygodniej (szybciej) w grze MMORPG.

Kurde, wydawalo mi sie ze pod windowsem wszystko mozna zrobić, a wychodzi na to ze taka prosta czynnosc jest niedostepna...

0

No nie był bym pewny czy szybciej będzie przełożyć ręce z jednej klawiatury na drugą czy wcisnąć jakiś przycisk aby przełączyć klawiaturę w drugi tryb.

0

Z całą pewnością pod Windows można obsługiwać i odróżnić wiele klawiatur na co dowodem jest choćby ten artykuł http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard jednak nie widzę nic na temat możliwości zmiany funkcjonalności klawiszy jednej z nich. Co prawda w części What's new? jest coś o filtrowaniu komunikatów ale to chyba dotyczy tylko danej aplikacji a nie całego systemu. Trzeba by uważnie przeczytać ten artykuł a nie pobieżnie przejrzeć ale mi się nie chce.

0
dam1an napisał(a):

Dałoby pewnie radę napisać program który by zmieniał te klawisze i jakimś skrótem przywracał domyślne, wtedy nie potrzebowałbyś dwóch klawiatur.

Chyba to jest jedyne wyjscie z tej sytuacji.
Znasz taki program, czy trzeba go napisac?

0

Mogłeś chociaż poswięcić chwilę i poszukać na forum: http://4programmers.net/Forum/953493 - tam masz program który zamienia mi w tle v z "~" i odwrotnie. Także masz już bazę do analizy. Wiadomo jak tam jest wykrywany klawisz. Także nie problem zrobić sprawdzanie czy wciśnięto jakiś klawisz.

Na przykład możesz sobie zrobić takie coś, że jak naciśnięto F12 to jakaś zmienna typu Boolean ustawiana jest na True. A ponowne naciśnięcie na False. I kiedy zmienna to True można wtedy w funkcji obsłudze Hooka zrobić podmianę klawiszy. Oczywiście kod tamtego programu w załączniku press_v_xp jest pisany w WinAPI. Ale jeśli wolisz nie problem mozna wszystko zrobić pod VLC. To tylko przykład jako "baza" dla Ciebie do dalszych SAMODZIELNYCH kombinacji.

0

Można mieć wiele klawiatur podłączonych, ale wszystkie będą interpretowane tak samo - niezależnie czy zmiany dokonamy w rejestrze na poziomie scancode'ów, czy w ustawieniach językowych na poziomie układu klawiatury, czy jakimś hookiem.

niezależny układ można byłoby osiągnąć tylko na poziomie sterownika, czyli pisząc niezależny sterownik dla jednej z klawiatur i tam przekłamywać scancode'y.

0

Kiedyś sobie napisałem dla zabawy program który rozpoznawał dwie klawiatury i dwie myszki

input z jednej klawiatury szedł do górnego textboxa, z drugiej do dolnego
tak samo rysowałem drugi kursor na ekranie i każda myszka miała swój

wydaje mi się że jest możliwość przechwycenia inputu z jednej klawiatury na niskim poziomie i zablokowania go tak żeby inne programy go w ogóle nie widziały - w ten sposób można raczej uzyskać dowolny efekt (np pisanie + granie)

wieczorem poszukam czy mam jeszcze źródła tego programu, ale nie był on trudny - sklejony z paru kodów znalezionych na internecie

0
gsdfg napisał(a):

wydaje mi się że jest możliwość przechwycenia inputu z jednej klawiatury na niskim poziomie i zablokowania go tak żeby inne programy go w ogóle nie widziały

No to dokładnie robi mój program poprzez zwrócenie Result := 1; i zaraz po tym Exit; Wcześniej symuluje naciskanie innego klawisza, ale nie trzeba tego robić i mamy wtedy blokadę.

Faktem jest jednak, że nie wszędzie ona zadziała ok. Na przykład pod DOSBoxem nadal będziemy mieli ten klawisz w grach czy konsoli emulowanego DOSa. Ale to pewnie wynika z faktu, że tam inaczej obsługiwane są naciskane klawisze. Jednak mi zależało na prawidłowym zachowaniu głownie pod aplikacjami w oknie.

0
gsdfg napisał(a):

Kiedyś sobie napisałem dla zabawy program który rozpoznawał dwie klawiatury i dwie myszki

input z jednej klawiatury szedł do górnego textboxa, z drugiej do dolnego
tak samo rysowałem drugi kursor na ekranie i każda myszka miała swój

wydaje mi się że jest możliwość przechwycenia inputu z jednej klawiatury na niskim poziomie i zablokowania go tak żeby inne programy go w ogóle nie widziały - w ten sposób można raczej uzyskać dowolny efekt (np pisanie + granie)

wieczorem poszukam czy mam jeszcze źródła tego programu, ale nie był on trudny - sklejony z paru kodów znalezionych na internecie

O takie coś mi chodzilo ;)

Wczesniej, po wyciagnieciu wnioskow z tego tematu, sciagnalem sobie program autohotkey, w którym napisalem prostego skrypta, ktory zmienia mi znaki na klawiaturze. Moge przelaczyc rownież szybko do defautowskich klawiszy ;)

 
w::Up
s::Down
a::Left
d::Right

esc::Suspend ; back to defaut 

pause::ExitApp  ; Exit script

w::return
s::return
a::return
d::return

gsdfg jestem ciekaw jak wyglada ten Twoj programik ;) takze podeslij go jak mozesz :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1