Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Klawisze - problem
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003
Klawisze - problem

Witam

Mam problem z odczytaniem watrości KeyCode (keyUp, keyDown), a dokładniej - naciskająć np. klawisz B oraz strzałkę w lewo (nie puszczam na razie żadnych klawiszy) i wciskając strzałkę do góry wykrywam naciśnięcie litery B i strzałki w lewo.
Ten problem wystę puje też przy innych kombinacjach znaków. Próbowałem wykryć to przez API ale efekt był ten sam.

Jak mogę wykryć naciśnięcie wszytskich klawiszy?

[Post edytowany dnia 28-09-2004 17:49 przez bisiek]


_____________________________________________
www.mob.abc.pl - moja strona o VB

28-09-2004 17:49
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

U mnie działa bez problemu. Wciskam B - dostaję bnKeyB, wciskając strzałkę w lewo - vbKeyLeft i strzałkę w górę - vbKeyDown...


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-09-2004 13:33
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

Chyba chodziło o naciśnięcie wszystkich klawiszy na raz...

29-09-2004 14:34
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Jesli nacisnę wszystkie 3 razem to też działa.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-09-2004 15:15
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Heh, a u mnie nie działa. Niektórych kombinacji po prosu nie wykrywa.


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-09-2004 17:24
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Może to kwestia systemu? Ja mam w98se.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-09-2004 19:05
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Ja też, więc raczej nie stąd problem Możliwe że to wina klawiatury lub sterowników (standardowe). Klawiature mam dość starą więc to może być właśnie przez to spowodowane.


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-09-2004 19:29
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Moje drugie podejrzenie było takie, że masz którąś z tych nowoczesnych multimedialnych klawiatur i dlatego . Ale jeśli nie, to i sprzęt mamy taki sam - moja też jest starego typu. No to szczerze mówiac nie wiem...
A co się dzieje, jeśli wpiszesz w Form_KeyDown taki kod:

If Instr(sKeys, Str(KeyCode)) = 0 Then
    sKeys = sKeys & ";" & Str(KeyCode)
    Debug.Print sKeys
End If

A w sekcji deklaracji:
Private sKeys As String

Jaka wartosć pojawia się w okienku immediate gdy wciśniesz te 3 klawisze?


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-09-2004 21:29
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Pojawia się

; 66
; 66; 37

Przez API też nie działa, myślałem że może więcej osób będzie mieć taki problem, ale widzę że tylko ja mam "lepszą" klawiaturę.


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-09-2004 22:05
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

No to nie wiem, co jest źle


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-09-2004 23:18
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
kicaj




Typ: neutral
Postów: 271
Zarejestrowany: Aug 2003

kiedys czytalem, ze nie wszystkie klawiatury odczytuja kombinacje klawiszy, tyle ze to bylo bardzo dawno, i przewaznie to byl problem z aplikacjami pod dosem

30-09-2004 01:40
Pokaż profil kicaj  Wyślij email do kicaj        3914568
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

To było i jest nadal. To, ile klawiszy jednocześnie będzie można wcisnąć (i będzie to miało jakiś efekt, bo wciskać klawisze można zawsze) zależy po pierwsze od wewnętrznej    organizacji klawiatury i jej kontrolera (wewnętrznego), po drugie - od kontrolera na płycie głównej. Byćmoże u Biśka klawiatyra nie obsługuje akurat takiej kombinacji klawiszy. Np. moja nie radzi sobie z jednoczesnym naciśnięciem strzałki w górę, strzałki w górę, strzałki w lewo i strzałki w prawo, gdy np. klawiatura mojej przyjaciółki bez problemu łapie naciśnięcie wszystkich 4 strzałek... Jeśli to wina sprzętu, to niestety z poziomu VB nic się na to nie poradzi .


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

30-09-2004 10:31
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
anonim




Typ: Nie zarejestrowany
Klawiatura

Myślę, że taki sposób nie powinien sprawiać problemów:
dim keyup as boolean
dim keydown as boolean

W zdarzeniu keydown formatki:
select case
case vbkeydown
    keydown = true
case vbkeyup
    keyup = true
end select

Zaś w zdarzeniu formatki keyup zeujemy zmienne
Select Case KeyCode

Case vbKeyUp
  KeyUp = False 'klawisz zwolniony
Case vbKeyDown
  KeyDown = False 'klawisz zolniony

End Select
 
Program musi działać w jakiejś pętli i sprawdzć stan zmiennych:

if keyup = true then ....
if keydown = true then...

02-10-2004 17:47
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

No tak. Ale problem Biśka leży w tym, że i niego system wogóle nie "zauważa" naciśnięcia "B", gdy strzałki w górę i w lewo sa już wciśnięte.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

02-10-2004 20:49
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 13 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1