Я пытаюсь создать программу, которая, когда я нажимаю горячую клавишу, конкатенирует определенный текст с выбранным текстом из окна. например: у меня есть текст «захват текст, выделенный мышью», я выбираю слово «текст» с помощью мыши, и теперь, когда я нажимаю какую-то горячую клавишу, она копирует меня в буфер обмена следующим образом: xxx + text + xxx , поэтому мой вопрос в том, как вернуть слово, выбранное мышью?захватить текст, выделенный мышью
спасибо !!
от того, что у меня сказал я understud это:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Clipbrd;
type
TForm4 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure WMHotkey(var Message: TWMHotKey); message WM_HOTKEY;
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
const
MY_ID = 123;
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, MY_ID, MOD_CONTROL, ord('1'));
end;
procedure TForm4.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, MY_ID);
end;
procedure TForm4.WMHotkey(var Message: TWMHotKey);
lookup_word: string;
begin
clipboard.clear;
if Message.HotKey = MY_ID then
begin
if not AttachThreadInput(GetCurrentThreadId, GetWindowThreadProcessId(GetForegroundWindow), true) then
RaiseLastOSError;
try
SendMessage(GetFocus, WM_GETTEXT, 0, 0);
lookup_word:= clipboard.astext;
edit1.Text := lookup_word;
Clipboard.AsText := '<font color=blue> edit1.text </font>';
SendMessage(GetFocus, WM_PASTE, 0, 0);
finally
AttachThreadInput(GetCurrentThreadId, GetWindowThreadProcessId(GetForegroundWindow), false);
end;
end;
end;
end;
end.
это нормально?
Я могу создать свое приложение так, как я планировал. но теперь я столкнулся с другой проблемой. он не будет работать над приложением aspx. он не распознает текст из окна редактирования aspx. Есть ли способ обойти эту проблему?
спасибо!
Вы отправили три вопроса на SO, все они в новой учетной записи. Вы должны * не * создавать новую учетную запись каждый раз, когда хотите опубликовать новый вопрос! –
Он может создавать столько учетных записей, сколько ему нравится. Он ** должен ** не быть. На SO нет правил о создании учетных записей или анонимных. –