我試圖做一個程序,當我按下熱鍵時,它將某個文本連接到窗口中的選定文本。例如:我有文本「捕獲文本用鼠標選擇」,我用鼠標選擇單詞「文本」,現在當我按下某個熱鍵時,它將我複製到剪貼板以下內容: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上發佈了三個問題,他們都在一個新帳戶中。你必須*不*創建一個新的帳戶,每次你想發佈一個新的問題! – 2010-11-08 11:44:38
他可以創建儘可能多的賬戶。他**不應該。 SO沒有關於創建賬戶或匿名的規定。 – 2010-11-08 14:35:30