社区
Windows SDK/API
帖子详情
如何给不是激活窗口发送字符 用Sendmessage 解决可以加分
xflcx
2003-04-15 10:06:49
我想给其他的程序发送 键盘鼠标消息 完成自动输入 但是不想让被控制的程序为当前活动窗体
...全文
382
11
打赏
收藏
如何给不是激活窗口发送字符 用Sendmessage 解决可以加分
我想给其他的程序发送 键盘鼠标消息 完成自动输入 但是不想让被控制的程序为当前活动窗体
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
来人阿
C#中使用
SendMessage
向非顶端窗体
发送
组合键
开门见山,不废话了, 直接举例说明一下:比如
发送
ALT + F以下是 用spy++截取的消息内容 000310DC P WM_SYSKEYDOWN nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:0 fAltDown:1 fRepeat:0 fUp:0 000310DC P WM_SYSKEYDOWN nVirtKey:F cRe
SendMessage
用法
函数功能:该函数将指定的消息
发送
到一个或多个
窗口
。此函数为指定的
窗口
调用
窗口
程序,直到
窗口
程序处理完消息再返回。该函数是应用程序和应用程序之间进行消息传递的主要手段之一。 函数原型:LRESULT
SendMessage
(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam); 参数: hWnd:其
窗口
程序将接收消息的
窗口
的句柄。如果此参
C# 中使用
SendMessage
函数
SendMessage
:该函数将指定的消息
发送
到一个或多个
窗口
。此函数为指定的
窗口
调用
窗口
程序,直到
窗口
程序处理完消息再返回。该函数是应用程序和应用程序之间进行消息传递的主要手段之一 函数原型:IntPtr
SendMessage
(int hWnd, int msg, IntPtr wParam, IntPtr lParam); 参数 hWnd:其
窗口
程序将接收消息的
窗口
的句柄。如果此参数为HWND_BROADCAST,则消息将被
发送
到系统中所有顶层
窗口
,包括无效或不可见的非自身拥有的
窗口
、被覆盖
SendMessage
用法详解及消息详解
函数功能:该函数将指定的消息
发送
到一个或多个
窗口
。此函数为指定的
窗口
调用
窗口
程序,直到
窗口
程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 函数原型:LRESULT
SendMessage
(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam); 参数: hWnd:其
窗口
程序将接收消息的
窗口
的句柄。如果此参数为HWND_BROADCAST,则消息将被
发送
到系统中所有顶层
窗口
,包括无效或不可见的非自身拥有的
窗口
、被覆
【控件功能】我来做练习-PostMessage和
SendMessage
有什么区别?
PostMessage和
SendMessage
有什么区别?
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章