# ctypes-C语言交互

# 概述

ctypes​是Python的一个标准库,用于与C语言进行交互。它提供了一种简单的方式来调用动态链接库(DLL)或共享库中的C函数,并在Python中使用这些函数。

以下是ctypes​库的一些主要特点:

  1. 跨平台性ctypes​库可以在多个操作系统上工作,包括Windows、Linux和macOS等。
  2. 无需编写C扩展模块:传统的Python C扩展模块需要通过编写C代码来实现与C语言的交互。而使用ctypes​,你无需编写C扩展模块,只需使用Python本身即可与C函数进行交互。
  3. 自动处理数据类型转换ctypes​会根据函数的参数类型自动进行数据类型转换,使得Python对象和C函数之间的交互更加方便和灵活。
  4. 支持指针操作ctypes​提供了对指针的支持,可以使用POINTER​类型来操作内存中的数据。
  5. 直接访问DLL函数:使用ctypes​,你可以直接访问动态链接库中的函数,而不需要额外的中间层。

# 示例 - 自动移动鼠标

主要场景是一些客户的电脑几分钟不动就自动锁屏,再次打开需要输入密码,比较繁琐,使用这个脚本可以自动移动鼠标防止电脑锁屏。并且使用的是ctypes​这个库也不用额外安装依赖。

emmm 在中信实测无效

import ctypes
import time
import random

# 设置移动鼠标的间隔时间(单位:秒)
interval = 60

# 获取屏幕的宽度和高度
user32 = ctypes.windll.user32
screen_width, screen_height = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)

try:
    while True:
        # 生成一个随机的坐标位置
        x = random.randint(0, screen_width)
        y = random.randint(0, screen_height)

        # 移动鼠标到指定位置
        user32.SetCursorPos(x, y)

        # 等待一定时间
        time.sleep(interval)

except KeyboardInterrupt:
    print("脚本已停止")