关于Win32API中的MAKELONG

python绑定游戏窗口模拟键盘鼠标操作方法64位32位通用 64位python不使用大漠插件进行鼠标键盘操作 阅读详情

Win32API中有一个MAKELONG函数,其实是一个宏,其介绍如:

 

MAKELONG macro creates an unsigned 32-bit value by concatenating two given 16-bit values.

 

DWORD MAKELONG(
  WORD wLow, // low-order word of long value
  WORD wHigh // high-order word of long value
);

大概是将两个16位数值连接成一个32位无符号数值。

 

在很多地方,有用到例如 (Delphi语法):

 

var

li_row : Integer;

l_row : wparam;

begin

li_row := 1000;                                                                 // 例如要滚动到1000行

l_row := MAKELONG(SB_THUMBPOSITION, li_row);          // 转换,如果不转换,是滚动不了,API识别不了。

SendMessage(mle_record, WM_VSCROLL, l_row, 0);       // 滚动到 mle_record 的 li_row 行

end;

 

可是在Win32汇编里面,却发现没有这个东西,经过简单试了一下,发现

 

MAKELONG(SB_THUMBPOSITION, li_row) 其实是相当于 li_row * 65536 + 4

 

这下好了,在Win32汇编里面也可以使用这样的公式来代替 MAKELONG 宏。

 

顺便把整理的写下来吧,如下:

 

    xor  esi,esi
    mov  esi,li_row
    inc  esi
    mov  li_row,esi
    mov  eax,li_row
    mov  ecx,65536D
    mul  ecx
    mov  li_row,eax
    xor  esi,esi
    mov  esi,li_row
    add  esi,4D
    mov  li_row,esi
    invoke SendMessage,mle_record,WM_VSCROLL,li_row,0

 

 

 

各种常用的 Win32Api 汇总(持续更新中. . . 作者:浪子花梦,一个有趣的程序员 ~ . Win32API 相关文章如下: Win32利用CreateEvent 实现简单的 —— 线程同步 Win32消息处理机制与窗口制作 Win32远程线程注入 .dll 文件 Win32删除目录下的所有文件 —— 递归遍历 (一)Win32服务程序编写 —— 使用SC命令创建与删除 (二)Win32服务程序编写 —— 使用命令行参数创建与删除 Win32使用快照、psapi.dll、wtsapi32.dll、ntdll.dll 四种方式实现 —— 枚举进程 (一).. 阅读详情

相关推荐

使用python向窗口发送鼠标点击命令

公司让用电脑在网页上看个视频。网页有个判断:一段时间没有鼠标活动,视频就会暂停。于是就想,能否隔一段时间就模拟鼠标点击一下视频暂停,再点一下继续播放。省得它自己停止播放。这样我就可以让网页窗口在后台,我去干别的。研究了一下,用python写了个代码基本上解决了这个问题。这里简单说一下解决思路。然后改造下面的代码(定时器),让过一段事件鼠标点击一次。有了窗口句柄后,就可以向窗口发送鼠标事件。

xgbm_k的专栏 2706

python win32gui.SendMessage详解

pywin32的sendmessage函数详解

m0_67713667的博客 1万+

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1058

python 自动化学习(三) 句柄获取、模拟按键、opencv安装

vi main.py。

默子昂 1万+

Win32常用的 类型和宏

 Win32常用的 类型和宏COLORREFHIBYTEHIWORDLOBYTELOWORDMAKELONG MAXMINMAKEINTATOMMAKEINTRESOURCEMAKELPARAMMAKELRESULTMAKEWORD  MAKEWPARAMPALETTEINDEXPALETTERGBRGBCOLOR

ssrs626的专栏 1175

WIN32程序API整理

/作为学习win32程序的笔记前言:vs创建win32程序步骤如下:1新建空项目,创建一个cpp文件,打开项目属性页面。设置为窗口选择性设置字符为多文本(本人没改)2 新建资源。解决方案列表-项目名称右键更改项目图标 找个icon图标放在项目目录中 ,下图Import即可增加对话框选择dialog,new另:对控件包括对话框本身修改ID后,需要打开文件,对重复的控件ID定义删除(vs的bug)(也就是修改的ID和以前的ID同时存在,把旧的删除)

conan666666的博客 1592

Win32宏之GET_X_LPARAM与GET_Y_LPARAM

在使用win32的一些特殊宏时,有必要注意一下宏的定义,例如:   http://blog.csdn.net/woyaowenzi/article/details/4608148 #define MAKEWORD(a, b)      ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR

_Witch__的专栏 4335

python使用win32类_python win32 简单操作

#coding: utf-8importwin32gui, win32api, win32conimporttimeimportwin32clipboard as wimportloggingdefclick_position(hwd, x_position, y_position, sleep):"""鼠标左键点击指定坐标:param hwd::param x_position::param y...

weixin_39995764的博客 666

win32键盘输入python_【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)...

importwin32guiimportwin32conimportwin32api#从顶层窗口向下搜索主窗口,无法搜索子窗口#FindWindow(lpClassName=None, lpWindowName=None) 窗口类名 窗口标题名handle = win32gui.FindWindow("Notepad", None)#获取窗口位置left, top, right, bottom ...

weixin_39662228的博客 489

模拟鼠标点击

#!/usr/bin/python #-*-coding:utf-8-*- import win32gui,win32api def click(handle, pos): client_pos = win32gui.ScreenToClient(handle, pos) tmp = win32api.MAKELONG(client_pos[0], client_pos[1])...

weixin_30315723的博客 99

python win32模块详解_python win32api模块

python 里面的win32api 模块FUNCTIONSAbortSystemShutdown(...)Apply(...)Beep(...)BeginUpdateResource(...)ChangeDisplaySettings(...)ChangeDisplaySettingsEx(...)ClipCursor(...)CloseHandle(...)CopyFile(...)Debug...

weixin_39617215的博客 1873

python win32api sendmessage_python win32api模拟后台鼠标点击的问题。

目前在开发脚本,结果遇到了这么个奇怪的事情发现在句柄获取成功情况下,程序处于最小化/后台的时候,最后一句按键模拟的代码会起作用,但是上面的两行鼠标的代码就不起作用,一开始是感觉程序把这个api给屏蔽了,但后来发现程序窗口在桌面但是没焦点的情况下 back1 那句话是有效的,但是back2始终不起作用,个人有一种猜想是代码起作用了,但是没点击到正确位置,窗口没有反应,导致以为没有效果。然而这种猜想,...

weixin_39620278的博客 4635

python win32api sendmessage_Python win32api.SendMessage方法代码示例

# 需要导入模块: import win32api [as 别名]# 或者: from win32api import SendMessage [as 别名]def click(self, coords, button="left",hold=False):"""Args:coords (touple): coords takes two arguments, either both floato...

weixin_39915171的博客 1506

python win32api.sendmessage_最新版本:python win32api模拟了背景鼠标单击问题。

我目前正在开发脚本,但是遇到了这么奇怪的事情发现当成功获得句柄并且程序最小化/后台运行时,按键模拟代码的最后一句将起作用,但是上面两行鼠标代码不起作用,一开始,我觉得程序阻止了此api,但是后来我发现,当程序窗口在桌面上但没有聚焦时,语句back1是有效的。但是back2永远行不通,我个人认为代码可以工作,但是窗口无法响应正确的位置,因此无效。但是,这种猜想,我使用chrome浏览器进行操作,在正...

weixin_39849671的博客 1583

python win32gui使用_python win32 简单操作

#coding: utf-8importwin32gui, win32api, win32conimporttimeimportwin32clipboard as wimportloggingdefclick_position(hwd, x_position, y_position, sleep):"""鼠标左键点击指定坐标:param hwd::param x_position::param y...

weixin_39960920的博客 2372

python win32con_python win32 简单操作方法

源由刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定;后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~下载要注意Python版本及位数,否则会安装失败直接到上面的地址去找合适的版本下载安装,已包含其它的工具下载的已经是可执行文件,直接执行即可https://sourceforge.net/projects/pywin32/...

weixin_39755952的博客 5620

python基于win32实现梦幻西游手游后台鼠标键盘

需要安装pywin32,numpy,cv2模块

wuanjhz的博客 4267

python使用win32类_python win32 简单操作方法

源由刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定;后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~下载要注意Python版本及位数,否则会安装失败直接到上面的地址去找合适的版本下载安装,已包含其它的工具下载的已经是可执行文件,直接执行即可https://sourceforge.net/projects/pywin32/...

weixin_39968801的博客 1378

Android13 AudioFlinger混音流程全解析:从prepareTracks_l到threadLoop_write的底层实现

本文深入解析Android13 AudioFlinger混音流程,从prepareTracks_l到threadLoop_write的底层实现。详细剖析MixerThread的核心工作循环,包括音轨预处理、混音算法执行及硬件写入机制,帮助开发者优化音频性能并处理多音轨场景。

tea88的博客 1107

2000-2024年中国城市AI算力数据-最新出炉.zip

一、资源特点全新力作:今年精心打造,人工细细打磨,品质上乘。权威精准:数据来源,准确靠谱,值得信赖。品质无忧:绝无数据造假,品质有保障,放心使用。二、适用人群学生:在校专科生、本科生、研究生,助力学业各个环节。教研人员:大学教师和学术科研工作者,为教学科研添力。三、适用专业社科经济:经济学、社会学专业适用。规划管理:地理学、城市规划,以及商业、工商管理专业皆可使用。[特别说明]相关资源数据已全部上传至baidu网盘。由于纯手工分享粘贴链接和提取码,不排除有极少提取码或者链接出现差错(或内容与标题对不上),若遇到这种情况,不要着急,请私信博主,将会第一时间更正补链接!

上一篇: 两下搞定Linux下Oracle的自启动
下一篇: EDIFACT 通讯工具 Mendelson AS2
书屋清茶
博客等级 码龄17年 10粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值