Как запустить вирт. клавиатуру в Win7, 8 и 10?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 12:49:15

Хочу запустить вирт. клавиатуру в Win7, 8 и 10 с помощью буттона. Как это сделать не подскажите?

Пасиб!
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 13:08:41

Запустите на выполнение файл osk.exe

Где он находится не скажу, но скорее всего, в папке Windows\system32\ (по крайней мере, для ХР это применимо)
Как запускать смотрите здесь: http://wiki.freepascal.org/Executing_Ex ... rograms/ru
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 13:13:46

Лекс Айрин писал(а):Запустите на выполнение файл osk.exe


osk.exe? Что это за файл и где его взять?
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 13:27:37

McLion, он идет в поставке с виндовс. Это как раз и есть вирт. клава.

В ХР от находится, как я уже говорил, в папке Windowssystem32

Чуть позже я попробую написать код.

Добавлено спустя 54 минуты 25 секунд:
у меня вот такой код сработал:

Код: Выделить всё
procedure TMainForm.Button1Click(Sender: TObject);
begin
  ShellExecute(0, nil, PChar('osk.exe'),nil,nil,SW_SHOWNORMAL);
end; 

так как в других операционных системах вирт. клава будет вызываться иначе, то нет смысла именно здесь использовать что-то более универсальное.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 14:52:05

Я вот как сделал. Не пойму только, у меня 64 бит, но Lazarus видит ее как 32бит. Поэтому пришлось "$IFDEF WIN64" на "$IFDEF WIN32" поменять и наоборот. osk.exe плоха тем, что там раскладку не переключишь.

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  {$IFDEF WINDOWS}
    {$IFDEF WIN64}
    SysUtils.ExecuteProcess('C:\Program Files (x86)\Common Files\microsoft shared\ink\TabTip32.exe', '', []);
    {$ENDIF}
    {$IFDEF WIN32}
    SysUtils.ExecuteProcess('C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe', '', []);
    {$ENDIF}
  {$ENDIF}
end;
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 15:10:12

McLion писал(а):osk.exe плоха тем, что там раскладку не переключишь.


У меня все переключается. Так как у меня ХР, то у меня нет TabTip. И таких как я еще полно.

McLion писал(а): Не пойму только, у меня 64 бит, но Lazarus видит ее как 32бит.

Это уже мелочи.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 15:12:47

Лекс Айрин писал(а):
McLion писал(а): Не пойму только, у меня 64 бит, но Lazarus видит ее как 32бит.

Это уже мелочи.


Как бы эту мелочь устранить?
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 15:19:29

McLion писал(а):Как бы эту мелочь устранить?


Боюсь, только самым тупым методом -- переименовав файлы соответственно платформе(разрядности). Либо подобное сделать в реестре.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 15:23:58

Ok... короче я выбрал этот метод, только есть одна проблемка, не могу закрыть клавиатуру.

Код: Выделить всё
SysUtils.ExecuteProcess('C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe', '', []);
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 15:35:35

McLion,
Я не занимался этим вопросом специально, но тут посложнее будет. Необходимо нейти Handle окна с заголовком TabTip и послать ему сообщение WM_Close.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 15:39:12

Лекс Айрин писал(а):McLion,
Я не занимался этим вопросом специально, но тут посложнее будет. Необходимо нейти Handle окна с заголовком TabTip и послать ему сообщение WM_Close.


Мда... приехали... :|
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 16:04:21

McLion, увы(((
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 16:07:38

Лекс Айрин писал(а):McLion, увы(((


Но все же спасибо за помощь! Я все-равно продвинулся...

Можно узнать почему ты еще на XP юзишь?
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение Лекс Айрин » 17.08.2015 16:53:02

McLion, потому что это рабочий комп. Обновление оси для него, в силу ряда причин, вредно и трудоемко.

Дома то я пользуюсь Линуксом.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как запустить вирт. клавиатуру в Win7, 8 и 10?

Сообщение McLion » 17.08.2015 17:05:40

Ааа... понятно...
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru
cron