首页
社区
课程
招聘
[求助]懂delphi的先生们
发表于: 2014-3-12 08:31 2754

[求助]懂delphi的先生们

2014-3-12 08:31
2754
懂delphi的先生们

哥们初学 delphi编程
想编个


如图所示的东西,拖动它到任意窗口中,得到句柄,间隔1秒,不停的发送 F5 刷新目标窗口。
同时也能让目标 always on top
求个 大致 实现的 思路

多谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1、查句柄,建议去看vctools 里面的spy++的代码,在windows核心编程里面有完整的示例代码。

2、发送消息。 Send or Post message

3、always  on top ,  set window  property
2014-3-12 09:07
0
雪    币: 225
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
1.onmousemove 调用 findwindows 得到句柄
2.ontimer 发送  keybord message 或者 模拟按键 F5 刷新目标窗口;发送setwindowslong message 让目标 always on top
2014-3-12 09:31
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
4
方法一:
  1,做个Timer,1秒运行一次。
  2,用下面函数发送键盘消息。
      keybd_event(VK_F5, 0, 0, 0);
      keybd_event(VK_F5, 0, 2, 0);

方法二:
  1,做个Timer。
  2,getforegroundwindow,获取当前置顶窗口句柄。
  3,用SendMessage,或者,PostMessage,提交消息。

附录:1,自己的窗口置顶:
  SetWindowPos(self.handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE);

比如:
procedure TfrmHook.FormCreate(Sender: TObject);
begin
  SetWindowPos(self.handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE);
  Timer2.Enabled :=false;
end;
2014-3-12 09:56
0
雪    币: 35622
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
多谢  老师~~回去,再研究下。
2014-3-12 10:00
0
雪    币: 102
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
非顶层窗体没法stay on top
首先
getcursorpos()
windowformpoint()
绘制边框用 GetWindowRect()
置顶用setwindowslog
刷新用sendmessage
2014-3-12 12:06
0
游客
登录 | 注册 方可回帖
返回
//