Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano
keyboard_string

Ciąg znaków zawierające 1024 ostatnio naciśniętych klawiszy znaku. Zawiera

tylko znaki które da się wyświetlić. Rozpoznaje także naciśnięcie klawisza

Backspace, usuwając ostatni znak z ciągu.

ok ale jak zrobić aby przy nie aktywnym oknie zapisywało znaki do keyboard_string

 

wiem o funkcji

keyboard_check_direct(key)

 

z czego od razu nasuwa się skrypt

if (keyboard_check_direct(ord('A'))) text+='a' // doda mi znak 'a' na koniec zmiennej

 

ok wszystko ładnie ale przytrzymanie przez dłuższą chwilę klawisza skutkuje dodaniem paru znaków

 

chciał bym aby warunek był sprawdzany wraz z częstotliwością powtarzania znaków w systemie.

 

chodzi mi dokładnie o to samo co keyboard_string ale podczas zminimalizowanego bądź ukrytego okna.

 

Czy ktoś ma pomysł jak tego dokonać, bądź ewentualnie jak sprawdzić częstotliwość powtarzania znaków ( Panel Sterowania/klawiatura/ )

 

/*  jeszcze rozwinę pojecie 'częstotliwość powtarzania znaków' chodzi mi o to że jak piszemy np w Wordzie :D  podczas przytrzymania klawisza przez jedną sekundę mamy jeden znak powyżej jednej sek. tworzy się duzo znaków ^^  znaczy znaki dodają się z różną szybkością w zależności jak długo trzymamy wciśnięty klawisz :P     */

Opublikowano

Mam dla Ciebie maly przykladzik:

DLOAD

Mysle ze sie przyda ;)

PS. Nieaktywne okno sam dorobisz

PS.2. Zauwazylem ze przy window_set_visible(false) gm nie odbiera sygnalow klawiatury - lepiej zrobic taki progs w c++

PS.3. @Tymon: Zabawne, ale jak sprawdzalem, to mi wogole nie odbiera, ale skoro mowisz ze dziala... :)

Opublikowano

Create

str = '';
for( n = 0; n < 256; n += 1 )
     key[n] = false;
alarm[0] = room_speed;

Alarm0

for( n = 0; n < 256; n += 1 )
     key[n] = false;
alarm[0] = room_speed;

Step

for( n = 65; n <= 122; n += 1 )
{
     if( keyboard_check_direct( n ) && !key[n] )
     {
          str += chr( n );
          key[n] = true;
     }
     else
          key[n] = false;
}

if( keyboard_check_direct( 8 ) && !key[8] )
{
     str = string_copy( str, 1, string_length( str ) - 1 )
     key[8] = true;
}
else
     key[8] = false;

Działa zawsze i reaguje tylko na litery + liczby. Oraz backspace. :P

 

PsichiX, kłamiesz bo odbiera.

 

EDIT

Ok, jeszcze inaczej.

http://www.gmclan.org/up152_11_keys.html

Z mapowaniem klawiszy gdy używany jest Alt. Wymaga poprawek, ale zasada jest dobra. Obsługuje wszystkie klawisze.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...