Компонент экранная клавиатура

anabenne
Дата: 02.05.2011 15:37:59
Всем привет. У меня задание написать произвольную компоненту экранная клавиатура на delphi. Стоит delphi 7.
Вопрос первый, при создании компонента какой предок лучше выбрать? и палитру?
Я делал так:
На новой форме,создал кнопку button и вписал туда код
begin

   wnd := FindWindow('notepad', nil);
   if wnd <> 0 then
   begin
     wnd := FindWindowEx(wnd, 0, 'Edit', nil);
      s := 'Ы';
       SendMessage(wnd, WM_CHAR, Word(s), 0);
   end;
Печатает символ Ы. Все хорошо и понятно, только печатает в одном блокноте.Надо чтобы во всех окнах,будь то браузер,ворд. Явно нужно поменять что то здесь - wnd := FindWindow('notepad', nil); Только что?
И допустим как поменять расклад с русского на англ?

И еще как раскрать обычную кнопку button в др цвет?
И вообще все ли правильно делаю?)) Может кто то уже видел где то
Sharkfire
Дата: 02.05.2011 15:44:32
может глупость скажу

проверяй класс окошка и юзай Get/SetWindowText Function
DimaBr
Дата: 02.05.2011 17:14:20
1. Ваша форма с клавиатурой не должна получать фокус
2. keybd_event - гораздо лучше
wellwell
Дата: 02.05.2011 18:47:26
RTFM SendInput
mr_idea
Дата: 02.05.2011 19:11:20
use keybd_event, luke!

(поверь старшим товарищам)
и не слушай про SendWindowText, это совсем другое
fd00ch
Дата: 02.05.2011 21:53:18
а я отдам свой голос за SendInput; юзай её, ТС :-)
Johnmen
Дата: 02.05.2011 22:32:35
а я отдам свой голос за DimaBr.
Anatoly Podgoretsky
Дата: 03.05.2011 07:25:35
А я за 100 баксов.
Петр К.
Дата: 04.05.2011 17:25:55
> Все хорошо и понятно, только печатает в одном блокноте. Надо чтобы во всех окнах,будь то браузер,ворд. Явно нужно поменять что то здесь - wnd := FindWindow('notepad', nil); Только что?

> Все хорошо и понятно
> печатает в одном блокноте.
> Явно нужно поменять что то здесь - wnd := FindWindow('notepad', nil); Только что?


> в одном блокноте
> FindWindow('notepad', nil);


Здесь надо nil заменить на all, т.к. nil - это параметр по-умолчанию, который позволяет печатать только в простейшей программе - блокноте, а all включает режим для профессионалов, в котором доступны такие приложения как браузер, ворд, icq, прочее.