Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.04.2014, 15:29
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию PostMessage

как передать не один символ, а строку целиком. пока только получается передать один символ вот так:
Код:
PostMessage(handle, WM_KeyDown, Ord('N'), 0);
Ответить с цитированием
  #2  
Старый 16.04.2014, 15:59
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Передать указатель на АП другого процесса, например, или через общую память, что более правильно.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 16.04.2014, 18:16
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

это ж нажатие клавиши! при чем тут строка?
Цитата:
WM_KEYDOWN
nVirtKey = (int) wParam; // virtual-key code
lKeyData = lParam; // key data

nVirtKey
Value of wParam. Specifies the virtual-key code of the nonsystem key.

lKeyData
Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table...
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 16.04.2014, 21:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А что мешает делать так
Код:
...
for i := 1 to Length(Text) do
PostMessage(handle, WM_KeyDown, Ord(Text[i]), 0);
...
главное не забыть отжать клавишу, в смысле слать подобное, но только с WM_KeyUp


З.Ы. Ещё можно вот это попробовать
Код:
...
PostMessage(handle, WM_SETTEXT, Length(Text), Integer(@Text[1]));
...

Последний раз редактировалось Alegun, 17.04.2014 в 08:52.
Ответить с цитированием
  #5  
Старый 17.04.2014, 14:50
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А что мешает делать так
Код:
...
for i := 1 to Length(Text) do
PostMessage(handle, WM_KeyDown, Ord(Text[i]), 0);
...
главное не забыть отжать клавишу, в смысле слать подобное, но только с WM_KeyUp[/code]

и так пробовал, проблема в том что символы типо '/' он передает не правильно. как можно получить key символа и передать его вместо Ord(Text[i])

например '/' - key = 191
Код:
PostMessage(handle, WM_KeyDown, 191, 0);
Ответить с цитированием
  #6  
Старый 17.04.2014, 15:11
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от duke2003
...как можно получить key символа и передать его вместо Ord(Text[i])...
Очевидно Byte('/')
Ответить с цитированием
  #7  
Старый 17.04.2014, 15:29
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

Byte('/') возвращает 47, при этом ни чего не передается. если передавать 191 (десятичное число), то передается символ '/'
Ответить с цитированием
  #8  
Старый 17.04.2014, 16:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Тогда посмотрите вот это, мне пришлось решать аналогичную задачу - коды клавиш там есть
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
duke2003 (17.04.2014)
  #9  
Старый 17.04.2014, 17:56
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

еще проблема, что у заглавных и строчных букв один номер и передается строчная, как передавать заглавную букву?
Ответить с цитированием
  #10  
Старый 17.04.2014, 18:10
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

потому что заглавные и строчные буквы находятся на одной физической клавише.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 17.04.2014, 18:12
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

я это понимаю, всвязи с этим вопрос как передать заглавную
Ответить с цитированием
  #12  
Старый 17.04.2014, 18:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну ты как заглавную букву вводишь? либо Caps включаешь, либо с Shift.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 17.04.2014, 18:42
duke2003 duke2003 вне форума
Прохожий
 
Регистрация: 14.04.2014
Сообщения: 13
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

вот так все равно передается строчная
Код:
PostMessage(handle, WM_KeyDown, VK_Shift, 0);
PostMessage(handle, WM_KeyDown, Ord('A'), 0);

PostMessage(handle, WM_KeyUp, VK_Shift, 0);
PostMessage(handle, WM_KeyUp, Ord('A'), 0);
MAD: оформляйте код!

Последний раз редактировалось M.A.D.M.A.N., 17.04.2014 в 19:49.
Ответить с цитированием
  #14  
Старый 17.04.2014, 19:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
  PostMessage(Handle, WM_CHAR, Ord('A'), 0);
  PostMessage(Handle, WM_CHAR, Ord('a'), 0);
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
duke2003 (17.04.2014)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:28.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025