社区
Windows SDK/API
帖子详情
如何给不是激活窗口发送字符 用Sendmessage 解决可以加分
xflcx
2003-04-15 10:06:49
我想给其他的程序发送 键盘鼠标消息 完成自动输入 但是不想让被控制的程序为当前活动窗体
...全文
340
11
打赏
收藏
如何给不是激活窗口发送字符 用Sendmessage 解决可以加分
我想给其他的程序发送 键盘鼠标消息 完成自动输入 但是不想让被控制的程序为当前活动窗体
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coolkenmester
2003-04-21
打赏
举报
回复
hwnd := FindWindow(类名,标题);
SendMessage(hwnd,WM_KeyDown,0,0);
xflcx
2003-04-21
打赏
举报
回复
可能是我没有说清楚 被控制的窗体是未知的 不是特定的 不是自己篇写的
要让他响应键盘事件 但是不能把他激活为当前窗体 它的窗体句柄是可以得到的
wjlsmail
2003-04-19
打赏
举报
回复
只要去的目标窗体句柄就可以
H := FindWindow(PChar('ClassName'),PChar('Text')) ;
SendMessage(h,WM_KeyDown,0,VK_F1) ; // 目标窗体要处理 KeyDown 事件
atuchina
2003-04-19
打赏
举报
回复
发送一些数据,不是字符如下,要多少数据(字符)就可以多少
(我也是刚做完一个发送东东的PRG)
以下在工程文件中
var
s : pchar;
buf:tagCOPYDATASTRUCT;
hnd:HWND;
begin
Application.Initialize;
application.Title := 'test';
try
hnd := CreateMutex(nil, True, 'UnifaceTools');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
GetMem(s,100);
buf.lpData :=s;
buf.cbData:=100;
buf.dwData :=100;
strpcopy(s, ParamStr(1));
SendMessage(findwindow(nil,'Uniface Porgram Tools'), $004A, 0, integer(@buf));
freemem(s);
end
else
begin
Application.Title := 'UnifaceTools';
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end;
finally
if hnd <> 0 then ReleaseMutex(hnd);
end;
接收部分:
procedure SetMyWindow(var msg : TMessage); message WM_COPYDATA;
。。。。。
procedure TMainForm.SetMyWindow(var msg: TMessage);
var
P:^tagCOPYDATASTRUCT;
FileName :String;
begin
p:=Pointer(Msg.lParam);
//ShowMessage(strpas(p.lpData));
FileName := strpas(p.lpData);
end;
WorldCreater
2003-04-18
打赏
举报
回复
“我想给其他的程序发送 键盘鼠标消息 完成自动输入 但是不想让被控制的程序为当前活动窗体”
这些都不难。只要你找到你要发送消息的目标窗体的句柄就成
naughtyboy
2003-04-18
打赏
举报
回复
SendMessage(h,wm_char,ord('a'),0);
PostMessage(h,wm_char,ord('a'),0);
向句柄为h的窗口发送字符'a'
wyhhc
2003-04-18
打赏
举报
回复
Hd是你要控制的控件句柄
ParentHd是你要控制的窗体句柄
Handle是你当前的句柄
wyhhc
2003-04-18
打赏
举报
回复
我的程序:
Var
ParentHd,Hd:LongInt;
begin
Hd:=LongInt(StrToInt(TListView(PopupMenu1.PopupComponent).Selected.Caption));
ParentHd:=LongInt(StrToInt(ListView2.Hint));
SetForegroundWindow(ParentHd);
PostMessage(Hd,WM_LBUTTONDOWN,0,0);
PostMessage(Hd,WM_LBUTTONUP,0,0);
SetForegroundWindow(Handle);
end;
shadowfish
2003-04-15
打赏
举报
回复
GZ
帮你up……
Spectrum
2003-04-15
打赏
举报
回复
没有用过,帮不了你
xflcx
2003-04-15
打赏
举报
回复
来人阿
Windows SDK/API
1,183
社区成员
22,328
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章