delphi中如何读取文本中的随机行,输出内容到其他程序的edit栏中
问题改变下方式,如何向光标停留处输出字符?除了获取当前窗口句柄的方式。。比如1.txt中有以下内容:11111222223333344444把鼠标放在其他程序的文本框处,...
问题改变下方式,如何向光标停留处输出字符? 除了获取当前窗口句柄的方式。。
比如1.txt中有以下内容:
11111
22222
33333
44444
把鼠标放在其他程序的文本框处,按热键后随机从1.txt取一行以模拟键盘的方式输出到文本框里。
注:此程序的文本框不支持粘贴。可以使用键盘直接输入内容! 展开
比如1.txt中有以下内容:
11111
22222
33333
44444
把鼠标放在其他程序的文本框处,按热键后随机从1.txt取一行以模拟键盘的方式输出到文本框里。
注:此程序的文本框不支持粘贴。可以使用键盘直接输入内容! 展开
2个回答
展开全部
模拟键盘输入
var
s:string;
f1,f2,f3,sl:longint;
begin
S:= '你要输出的字';
//--得到当前焦点控减句柄发消息
f1:=GetForegroundWindow;
f2:=GetWindowThreadProcessId(f1,nil);
AttachThreadInput(GetCurrentThreadId,f2,true);
f3:=getfocus;
AttachThreadInput(GetCurrentThreadId,f3,false);
//--没焦点就退出
if f3 = 0 then Exit;
//--模拟键盘输入
sl:=1;
while sl<>length(s)+1 do
begin
if ord(s[sl])<130 then
begin
SendMessage(f3, $0286,ord(s[sl]),0);
sl:=sl+1;
end
else
begin
SendMessage(f3, $0286,(ord(S[sl]) shl 8)+ord(S[sl+1]),0);
sl:=sl+2;
end;
end;
//模拟完毕
result:=s;
end;
var
s:string;
f1,f2,f3,sl:longint;
begin
S:= '你要输出的字';
//--得到当前焦点控减句柄发消息
f1:=GetForegroundWindow;
f2:=GetWindowThreadProcessId(f1,nil);
AttachThreadInput(GetCurrentThreadId,f2,true);
f3:=getfocus;
AttachThreadInput(GetCurrentThreadId,f3,false);
//--没焦点就退出
if f3 = 0 then Exit;
//--模拟键盘输入
sl:=1;
while sl<>length(s)+1 do
begin
if ord(s[sl])<130 then
begin
SendMessage(f3, $0286,ord(s[sl]),0);
sl:=sl+1;
end
else
begin
SendMessage(f3, $0286,(ord(S[sl]) shl 8)+ord(S[sl+1]),0);
sl:=sl+2;
end;
end;
//模拟完毕
result:=s;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询