简单演示python 如何使用Windows动态链接库文件user32.dll

这个例子对于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)

相关推荐

  1. Windows DLL动态)的用处

    2023-12-12 08:46:04       19 阅读
  2. C++由动态dll生成lib文件

    2023-12-12 08:46:04       19 阅读
  3. 实现动态DLL)注入的C++编程

    2023-12-12 08:46:04       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 08:46:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 08:46:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 08:46:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 08:46:04       20 阅读

热门阅读

  1. HTTP常见错误码原因以及解决办法

    2023-12-12 08:46:04       38 阅读
  2. MySQL常用基础命令

    2023-12-12 08:46:04       37 阅读
  3. react相关hooks(二)

    2023-12-12 08:46:04       36 阅读
  4. 浏览器面试

    2023-12-12 08:46:04       32 阅读
  5. Elasticsearch

    2023-12-12 08:46:04       30 阅读
  6. 什么是Scss

    2023-12-12 08:46:04       30 阅读
  7. Matlab矩阵中元素交换

    2023-12-12 08:46:04       39 阅读
  8. Linux中的几个重要指令

    2023-12-12 08:46:04       27 阅读
  9. 剑指 Offer(第2版)面试题 24:反转链表

    2023-12-12 08:46:04       45 阅读
  10. Network Repo Installation for Ubuntu(gds)

    2023-12-12 08:46:04       39 阅读