polskie znaki z klawiatury numerycznej

0

Chcę przesyłać tekst z okna tekstowego aplikacji delphi do okna tekstowego zewnętrznej aplikacji
symulując klawiaturę numeryczną
(właśnie przez klawiaturę numeryczną a nie kombinacją Alt+Klawisz, ani SendMessage)
Dla podstawowych znaków alfabetu łacińskiego jest to proste i działa poprawnie:

W pętli jeden znak po drugim jest przesyłany do zewnętrznej aplikacji według instrukcji:
-pobranie numeru znaku w ASCI (np. Ord(Edit1.Text[n]) )
-Symulacja wciśnięcie Alt + symulacja wciśnięć kolejnych cyfr z liczby uzyskanej przez funkcję Ord() liczby

Jednakże inaczej jest z polskimi znakami:
np. Ord() ze znaku 'ą' to 261 co po wstawieniu z numerycznej daje znak koniczynki: ♣
tymczasem aby uzyskać 'ą' w symulacji klawiatury numerycznej musi być symulowane wciśnięcia 165

A więc są 2 wyjścia:

  • albo zmienić / przekonwertować Ord na właściwą liczbę (dla ą byłoby to 261> 165)
  • albo znaleźć/ napisać taką funkcję która z polskiego znaku jako argumentu da adekwatną liczbę (dla ą byłoby to 165)

Jak to można zrobić?

0

Zamiast 165 możesz też wklepać 0185. To zero jest istotne.
Te czterocyfrowe kody podaje Tablica znaków (charmap.exe).

Kod który ci zwraca Ord() to kod znaku z kodowania Unicode.
Kod trzycyfrowy 165 to kod znaku z kodowania CP852.
Kod czterocyfrowy 0185 to kod z kodowania CP1250.

Masz do wyboru posłużyć się tabelką (polskich liter jest osiemnaście) albo konwertować kodowanie.

0
Azarien napisał(a):

Zamiast 165 możesz też wklepać 0185. To zero jest istotne.
Te czterocyfrowe kody podaje Tablica znaków (charmap.exe).

Kod który ci zwraca Ord() to kod znaku z kodowania Unicode.
Kod trzycyfrowy 165 to kod znaku z kodowania CP852.
Kod czterocyfrowy 0185 to kod z kodowania CP1250.

Masz do wyboru posłużyć się tabelką (polskich liter jest osiemnaście) albo konwertować kodowanie.

Tak rzeczywiście , z tm że miałem zamiar rozwiązać wszystko jednym kodem a nie osobnym kodem dla każdego polskiego znaku,
Wobec tego pytanie:

  • czy można zmodyfikować działanie symulacji klawiatury numerycznej aby wstawiła znak o numerze 261 z tablicy Unicode a nie z ASCI?
    -albo czy jest odpowiednik funkcji Ord () ale dla tablicy CP1250?
    -albo czy jest algorytm/funkcja do konwersji pomiędzy tablicami
    -albo wreszcie czy w języku C++

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