Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Przechwytywanie i konwersja "w locie"
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002
Przechwytywanie i konwersja "w locie"

Mam taki problem-chce napisac aplikacje, ktora czuwalaby w tle i zamieniala wszytstkie polskie znaki diaktryczne (ąźć) na ich bezogonkowe odpowiedniki "w locie". Probowalem uzyc funkcji API GetKeystate, ale nie wiem jak wywalic z bufora to co wpisal USER, tzn. dajmy na to, że wciśnie ą, a ma wyskoczyć a... Czy wie ktoś jak to rozwiązać?


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


07-12-2003 14:55
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
oto rozwiązanie...

Kod formularza:

Option Explicit

Dim zmiana As Integer 'pomocnicza

Private Sub TextBox1_Change()
Dim strTemp As String
Dim sZnak As String
Dim dl As Long
On Error Resume Next

If zmiana = 1 Then 'żeby się nie zapętlał
    zmiana = 0
    Exit Sub
End If

strTemp = Me.TextBox1
dl = Len(strTemp)

If dl = 0 Then Exit Sub

sZnak = Mid(strTemp, dl, 1)
Select Case sZnak
    Case "ą"
        sZnak = "a"
        zmiana = 1
    Case "ć"
        sZnak = "c"
        zmiana = 1
    Case "ę"
        sZnak = "e"
        zmiana = 1
    Case "ł"
        sZnak = "l"
        zmiana = 1
    Case "ń"
        sZnak = "n"
        zmiana = 1
    Case "ó"
        sZnak = "o"
        zmiana = 1
    Case "ś"
        sZnak = "s"
        zmiana = 1
    Case "ż", "ź"
        sZnak = "z"
        zmiana = 1
End Select

If zmiana = 1 Then
    If dl = 1 Then strTemp = sZnak
    strTemp = Mid(strTemp, 1, dl - 1) & sZnak
    Me.TextBox1 = strTemp
Else

End If

End Sub


Private Sub UserForm_Initialize()
    zmiana = 0
End Sub


Dodaj jeszcze obsługę dużych liter i gotowe!

[Post edytowany dnia 08-12-2003 09:38 przez losmac]


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

08-12-2003 09:35
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Viper87



Typ: neutral
Postów: 490
Zarejestrowany: Oct 2002

Wielkie dzięki, ale czy to zadziała jak będę pisa np. w notatniku, czy Wordzie, bo o to chodzi :-)?


_____________________________________________
Viper

"Savoir c`est prevoir, prevoir c`est prevenir". 
(Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 


08-12-2003 09:48
Pokaż profil Viper87  Wyślij email do Viper87   Odwiedź stronę Viper87  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
a no nie zadziała....

Podałem Ci przykład, jak to zrobić we własnej aplikacji. Aby móc zamieniać "w locie" wpisywane znaki do innych aplikacji musisz przechwycić przerwanie klawiatury.
Nie mam takiego przykładu, ale widziałem gdzieś na sieci. Poszukaj wszystko, co związane jest z przechwyceniem przerwania klawiatury. Jak znajdę coś to dam znać.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

08-12-2003 12:02
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Strength




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

hookowanie klawiatury czesto wystepuje w trojanach... mozesz poszukac w ich zrodlach ;]


_____________________________________________

www.strength.prv.pl

09-12-2003 00:25
Pokaż profil Strength  Wyślij email do Strength   Odwiedź stronę Strength       2037723
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1