|
Вопрос # 5 056/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Будте добры подскажите пожалуйста, как сделать так, чтобы текст в чужом окне, если там есть курсор для печати, при нажатии кнопки в моей проге, весь текст, который в чужом окне, копировался в моё (например мемо) обрабатовался и уже в обработаном виде заменял текст в том окне из которого мы копировали?
 |
Вопрос задал: Макаров Игорь Сергеевич (статус: Посетитель)
Вопрос отправлен: 28 февраля 2011, 16:25
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 1 марта 2011, 15:37; участников в обсуждении: 2.
|
Макаров Игорь Сергеевич (статус: Посетитель), 28 февраля 2011, 17:47 [#2]:
Почему мне в примерах пишет Undeclader Identifiar ListBox1? Я его подключал(
|
|
Вадим К (статус: Академик), 28 февраля 2011, 18:33 [#3]:
Наверно нужно на форму положить ListBox
Галочка "подтверждения прочтения" - вселенское зло.
|
28 февраля 2011, 19:10: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Delphi » Программирование с помощью API модератором Ерёмин А.А.
|
Вадим К (статус: Академик), 28 февраля 2011, 21:04 [#5]:
Напрягу телепатические способности.
А если вместо ListBox1 написать form1.Listbox1, скомпилируется?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Макаров Игорь Сергеевич (статус: Посетитель), 1 марта 2011, 14:31 [#6]:
У меня есть такой код и его надо немножко поправить, помогите!!!
При нажатии мыши в какомто поле текст копируется в мою прогу,
но есть одно но, оно копирует и копирует, что надо исправить чтобы оно скопировало всего один раз? timer1.enableD:=false; не подходит!
надо чтобы востанавливался таймер при появлении мишь в другом поле
function GetSysFocus: Integer;
var
hFgWin, FgThreadID, hFocusWin: Integer;
begin
hFgWin := GetForegroundWindow;
FgThreadID := GetWindowThreadProcessID(hFgWin, nil);
if AttachThreadInput(GetCurrentThreadID, FgThreadID, True) then
begin
Result := GetFocus;
AttachThreadInput(GetCurrentThreadID, FgThreadID, False);
end
else
Result := GetFocus;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var ACtrl:HWND;
FgThread:Integer;
FgHwnd:Integer;
begin
ACtrl:=GetSysFocus();
PostMessage(actrl, WM_COPY,0, 0);
Memo1.Perform(WM_PASTE, 0, 0);
timer1.enableD:=false;
end;
Есть ещё такая процедура!
Как сделать, чтобы текст из чужого окна при копировании в мемо1, выполнялась эта процедура и по её окончанию текст заменялся в том окне откуда было скопировано текст?
Помогите пожалуйста!!! может вместо таймера как-то её переделать?
procedure TForm1.Button1Click(Sender: TObject);
var r:string;
begin
R:=memo1.SelText;
R:=EngtoRus(r);
memo1.SelText:=R;
end;
|
|
Вадим К (статус: Академик), 1 марта 2011, 14:45 [#7]:
а может вместо таймеров и прочих премудростей просто зарегистрировать горячую клавишу?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Макаров Игорь Сергеевич (статус: Посетитель), 1 марта 2011, 14:55 [#8]:
Как это сделать? у меня есть Action1Execute на форме вместо Button1 а дальше что?
|
|
Макаров Игорь Сергеевич (статус: Посетитель), 1 марта 2011, 15:29 [#10]:
Помоги мне собрать всё до кучи пожалуйста! Буду очень благодарен!
|
|
Вадим К (статус: Академик), 1 марта 2011, 15:37 [#11]:
ну не могу же я за Вас все сделать сам. Нужно хоть немного, а сделать самостоятельно.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|