| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 629 人关注过本帖
标题:通过计算机的主窗口进行发送X,Y坐标消息。求人指点,包含源代码。谢谢
只看楼主 加入收藏
llxdgchk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-26
收藏
 问题点数:0 回复次数:7 
通过计算机的主窗口进行发送X,Y坐标消息。求人指点,包含源代码。谢谢
有没有人帮忙啊。。打开计算器,先找到主窗口句柄,然后用sendmessage或者postmessage,向指定的按键去模拟键盘鼠标操作,不能用那些数字的句柄来操作.
图片附件: 游客没有浏览图片的权限,请 登录注册

只能通过计算机的主窗口进行发送X,Y坐标消息。不能向别的按钮发送消息
昨天就是PostMessage( hwnd, WM_LBUTTONDOWN, NULL, MAKELPARAM(151,113) )。位移了,也不见成功 .
我指定X,Y坐标的值,也不见它模拟成功 .
麻烦谁有时间写个计算机模拟按键的,用sendmessage或者postmessage,发送X,Y坐标,用汇编写代码出来,好吗?
下面是我的代码,能编译成功,但就是不能模拟点键。。

.386
.Model Flat, StdCall
Option Casemap :None

include    windows.inc
include    user32.inc
include    kernel32.inc
includelib    user32.lib
includelib    kernel32.lib
include        Shell32.inc   
includelib    Shell32.lib

.DATA?
szbuf        db    256    dup    (?)
hwin        dd    ?
szxy        dd    ?

.DATA
szcalc        db    'calc.exe',0
szCalculator    db    'Calculator',0
szSciCalc    db    'SciCalc',0
szx        db    '%08x',0
.CODE
START:
    invoke    GetModuleHandle,NULL
    invoke    ShellExecute,NULL,NULL,offset szcalc,NULL,NULL,SW_NORMAL
    ;上面打开计算器
    invoke    Sleep,500
    invoke    FindWindow,offset szSciCalc,offset szCalculator
    .if    eax
        mov    hwin,eax
    .endif
    ;--上面找到计算器的主窗口并激活
    invoke    SetActiveWindow,hwin
    mov    eax,158
    ;--先设置Y坐标的值为158,然后左移16位
    shl    eax,16
    mov    ebx,51
    ;--设置X坐标值为51
    or    eax,ebx
    ;--再把X,Y进行OR操作
    invoke    wsprintf,offset szbuf,offset szx,eax
    ;把最终值转换成16进制
    invoke    Sleep,1000
    invoke    PostMessage,hwin,WM_LBUTTONDOWN, NULL,offset szbuf
    invoke    PostMessage,hwin,WM_LBUTTONUP, NULL,offset szbuf
    ;--发送左键消息,在lparam中设置了刚转换的16进制值
    invoke    ExitProcess,NULL
END START
搜索更多相关主题的帖子: 源代码 计算机 
2012-09-16 14:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
模拟鼠标键盘用SendInput比较方便 自己发消息比较麻烦

http://msdn.
2012-09-16 15:00
llxdgchk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-26
收藏
得分:0 
麻烦一点没关系,关键是我是直接学汇编,没有学过C和C++这些语言,我看不懂。。我只看得懂汇编,郁闷。。。版主能不能抽时间帮我看一下,哪里需要修改,才能模拟成功啊。。
(9.64 KB)
2012-09-16 15:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用llxdgchk在2012-9-16 15:15:15的发言:

麻烦一点没关系,关键是我是直接学汇编,没有学过C和C++这些语言,我看不懂。。我只看得懂汇编,郁闷。。。版主能不能抽时间帮我看一下,哪里需要修改,才能模拟成功啊。。

我说麻烦 意思就是我懒得看。。 所以 我建议你用其他API实现
2012-09-16 15:22
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
收藏
得分:0 
用mouse_event这个API模拟操作
2012-09-17 13:43
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
主动放弃看了,返回看DOS调用 和 BIOS调用了   尼玛伤到了

我要成为嘿嘿的黑客,替天行道
2012-09-22 01:12
dxuser
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2012-8-21
收藏
得分:0 
long hp;
    RECT r1;
    POINT p;

    hp = dm.FindWindow(0,"宽带连接");
    ::GetWindowRect((HWND)hp,&r1);
    ::GetCursorPos(&p);
    ::SetCursorPos(43+r1.left,326+r1.top);
    Sleep(500);
    dm.LeftClick();

自动点宽带连接那个“连接”按扭的
/////////////////////////
那个dm.XXXXX你换下.....
2012-10-02 21:01
dxuser
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2012-8-21
收藏
得分:0 
用SPY++查点的坐标。。。。然后移动鼠标,点击。。。

看下郁金香的外挂教程吧
2012-10-02 21:06
快速回复:通过计算机的主窗口进行发送X,Y坐标消息。求人指点,包含源代码。谢谢 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034835 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved