叶
叶不归
Unregistered / Unconfirmed
GUEST, unregistred user!
目标:选中记事本中的某几行文字, 按下F6键时,选中的文字每行前加上字符'Ok'。
实现:1.将F6注册为热键
2.虚拟按下Ctrl+c
3.取得剪贴板内容
4.修理取得的内容
5.将处理后的内容放入剪贴板
6.虚拟按下Ctrl+v
出错:第一次从1到6执行完全成功,第二次执行时,到第3步出错,提示无法打开剪贴板
如果取消第2和第6步,则无错误,可见问题出的模拟Ctrl+C上。
请高手赐教!以下原代码供参考:
第3至第6步:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
if ClipBoard.HasFormat(CF_TEXT) then
begin
{ 取得内容 }
KeyBoard_Event(VK_Control, 0, 0, 0);
KeyBoard_Event(Ord('C'), 0, 0, 0);
KeyBoard_Event(Ord('C'), 0, 2, 0);
KeyBoard_Event(VK_Control, 0, 2, 0);
Sleep(200); { 这个是必须的 }
Memo1.Clear;
Memo1.PaseFromClipBoard;
for I := 0 to Memo1.Lines.Count - 1 do
Memo1.Lines := 'Ok' + Memo1.Lines;
ClipBoard.AsText := Memo1.Text; { 第二次执行时这里出错 }
{ 放入内容 }
KeyBoard_Event(VK_Control, 0, 0, 0);
KeyBoard_Event(Ord('V'), 0, 0, 0);
KeyBoard_Event(Ord('V'), 0, 2, 0);
KeyBoard_Event(VK_Control, 0, 2, 0);
end;
end;
实现:1.将F6注册为热键
2.虚拟按下Ctrl+c
3.取得剪贴板内容
4.修理取得的内容
5.将处理后的内容放入剪贴板
6.虚拟按下Ctrl+v
出错:第一次从1到6执行完全成功,第二次执行时,到第3步出错,提示无法打开剪贴板
如果取消第2和第6步,则无错误,可见问题出的模拟Ctrl+C上。
请高手赐教!以下原代码供参考:
第3至第6步:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
if ClipBoard.HasFormat(CF_TEXT) then
begin
{ 取得内容 }
KeyBoard_Event(VK_Control, 0, 0, 0);
KeyBoard_Event(Ord('C'), 0, 0, 0);
KeyBoard_Event(Ord('C'), 0, 2, 0);
KeyBoard_Event(VK_Control, 0, 2, 0);
Sleep(200); { 这个是必须的 }
Memo1.Clear;
Memo1.PaseFromClipBoard;
for I := 0 to Memo1.Lines.Count - 1 do
Memo1.Lines := 'Ok' + Memo1.Lines;
ClipBoard.AsText := Memo1.Text; { 第二次执行时这里出错 }
{ 放入内容 }
KeyBoard_Event(VK_Control, 0, 0, 0);
KeyBoard_Event(Ord('V'), 0, 0, 0);
KeyBoard_Event(Ord('V'), 0, 2, 0);
KeyBoard_Event(VK_Control, 0, 2, 0);
end;
end;