简单演示python 如何使用Windows动态链接库文件user32.dll
2023-12-15 12:28:33
这个例子对于Windows API编程经验的初学者有一些帮助,由于ctypes是python内置库 ,优点就是我们不需要安装第三方库 这就可以使用Windows动态链接库中函数 方便增强我们编程的灵活性 由于语法的不同 我们得注意一些细节上的差别,我不给出太长的代码段,以免分散注意力,希望对初学者有一定的帮助:
#第一步 引入库
import ctypes
#现在我们想使用user32.dll文件提供的函数,使用下面两种方式中任意一种声明即可
# user32=ctypes.windll.user32
user32=ctypes.windll.LoadLibrary(r"user32.dll")
#我这里定义LONG类型 就主要希望和Windows编程语法书写一致 大家看上去熟悉
LONG = ctypes.c_long
#这里定义一个点结构类型 使用python定义一个类 和C语言相似点很高 所以大家可以其他类似结构
#很容易转换为python可用的形式 这和微软定义一致 目的增加通用性 我们遵循该原则可读性高
#而且维护也很好 别人也容易阅读 如何你使用程序转换C语言为python语言 遵循原则的其他人些的程序
#我们同样很快转换为python语法
class POINT(ctypes.Structure):
_fields_ = [("x", LONG),
("y", LONG)]
#注意一点 由于C语言编写的是传值调用 所以使用结构是必须采取参数为引用传递 这样函数才能修改参数的#值 这里给一个获取当前鼠标位置的函数调用
a=POINT()
user32.GetCursorPos(ctypes.byref(a))
#如果我们不采用参数的引用传递 得到只是传值调用 结果和初始化时一样 python对数值类型默认
#初始值为0
print("GetCursorPos鼠标位置为:",a.x,a.y)
文章来源:https://blog.csdn.net/pengg123h/article/details/134936615
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!