3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
1

Вставка текста перед написанным текстом

28.09.2016, 19:36. Показов 853. Ответов 8
Метки нет (Все метки)

Если честно, вообще не понимаю как это реализовать. Например написал я слово "хороший" нажал Enter И перед этим текстом в том же БЛОКНОТЕ вставилось слово "я" и конечный результат "я хороший". То есть, написали слово хороший, нажали энтер и перед ним должно появиться слово Я. Важно, что хочу это сделать в сторонней программе, типа блокнота
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2016, 19:36
Ответы с готовыми решениями:

Вставка перед текстом знака абзаца
В документе есть жирный текст двух видов: Без отступа слева. И с отступом слева. Нужно...

DrawString: как сохранить картинку с написанным на ней текстом
У меня следующий, очень интересующий меня, вопрос. Я сделал проект, в котором загружается картинка,...

Значки перед текстом
Подскажите пожалуйста, у меня есть 3 надписи, и перед каждой из них должна быть одна и та же...

Поставить многоточие перед текстом
text-overflow: ellipsis обрезает предложение и добавляет многоточие в конце, а как сделать так...

8
Эксперт Pascal/Delphi
4866 / 2742 / 846
Регистрация: 04.10.2012
Сообщений: 9,993
29.09.2016, 10:49 2
Цитата Сообщение от Vadim14 Посмотреть сообщение
написали слово хороший, нажали энтер и перед ним должно появиться слово Я. Важно, что хочу это сделать в сторонней программе, типа блокнота
Цитата Сообщение от Vadim14 Посмотреть сообщение
вообще не понимаю как это реализовать
Можно так. В OnKeyPress TEdit-а

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
uses ComObj;
//...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
s:string;
WsShell: OleVariant;
begin
WsShell :=CreateOleObject('WScript.Shell');
s :=AnsiLowerCase(Edit1.Text); //считываем строку
   // AnsiLowerCase() переводит символы строки в нижний регистр
  // Для юникодных версий Delphi WideLowerCase()
if Key=#13 then begin //при нажатии Enter
if s='хороший' then
  begin
  Insert('я ', s, 1); //вставка текста в существующий
  Edit1.Text :=s; //выводим полученную строку (если необходимо)
  end;
  WsShell.Run('notepad', 1, False); //открываем Блокнот или другую указанную программу
  Sleep(200); //задержка
  WsShell.SendKeys(s, True); //посылаем ему сообщение, введенное пользователем
  WsShell.SendKeys('{ENTER}', True); //переходим на новую строку
 //можно отправить следующую строку (или команду) и т.д.
 end;
 
end;
 
end.
0
Модератор
7818 / 5140 / 2146
Регистрация: 21.01.2014
Сообщений: 22,148
Записей в блоге: 3
29.09.2016, 11:14 3
droider, я почему-то так понял, что ТС хочет именно в блокноте, а не в своей программе, написать слово "хороший", там же нажать ENTER и чтобы после этого у него в блокноте же подставилась буква Я в начале строки.
0
Эксперт Pascal/Delphi
4866 / 2742 / 846
Регистрация: 04.10.2012
Сообщений: 9,993
29.09.2016, 11:18 4
D1973, тогда эта задача точно не для него "Забьет" себе мозг.
0
D1973
29.09.2016, 11:21
  #5

Не по теме:

droider, что-то сердце мне вещует, что мозг он "забьет" всем нам :D И вообще на заготовку для зловреда похоже...

0
97 / 97 / 25
Регистрация: 25.04.2016
Сообщений: 525
29.09.2016, 11:22 6
1 Вариант
Попробуйте поискать в интернете метод SendKeys. Это как раз то, что вам нужно.
Но предупреждаю - все не просто.

2 Вариант
Использвать WinAPI.
Ищем нужное окно, и периодически получаем с него содержимое (наш текст), проверяем.
Если совпало с каким-то условием, то делаем обработку текста и шлем новый текст в окно SendMessage.

Добавлено через 1 минуту
В любом случае, такой код тут за вас писать никто не будет, а помочь с тем, что что-то не работает - думаю, помогут.
0
Эксперт Pascal/Delphi
4866 / 2742 / 846
Регистрация: 04.10.2012
Сообщений: 9,993
29.09.2016, 11:29 7
Цитата Сообщение от MyEternity Посмотреть сообщение
Попробуйте поискать в интернете метод SendKeys
а я о том писал выше)). Почти...
0
Модератор
7818 / 5140 / 2146
Регистрация: 21.01.2014
Сообщений: 22,148
Записей в блоге: 3
29.09.2016, 11:31 8
Цитата Сообщение от MyEternity Посмотреть сообщение
Если совпало с каким-то условием
Условие-то - нажатие ENTER в окне стороннего приложения...
0
97 / 97 / 25
Регистрация: 25.04.2016
Сообщений: 525
29.09.2016, 12:03 9
Цитата Сообщение от D1973 Посмотреть сообщение
Условие-то - нажатие ENTER в окне стороннего приложения...
Что мешает искать chr(10) или chr(13) в буфере чужого приложения?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2016, 12:03
Помогаю со студенческими работами здесь

Подстановка символа перед найденным текстом
Помогите вери плз чайнику! Нужен 'обработчик строки' или функция, которая будет искать текст и...

Нули перед текстом в общем формате
Добрый день. На листе 1 лежит таблица. На лист 2 сканером в столбец А бьются данные со сканера....

Добавить символ перед текстом в RichEdit
Здравствуйте! Помогите с одной задачей связанной с поиском слова, а именно предлога во всем...

Что означает L в коде перед текстом в кавычках?
Скажите пожалуйста, что означает " L " в коде перед текстом в кавычках? Дайте ссылку где находится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru