求助,实在找不到问题所在。ctypes 库

108 天前
 sun82kg
import win32con
import win32gui
import ctypes

# 定义 COPYDATASTRUCT 结构体
class COPYDATASTRUCT(ctypes.Structure):
_fields_ = [("dwData", ctypes.c_ulong),
("cbData", ctypes.c_ulong),
("lpData", ctypes.c_char_p)]

def send_copydata_message(hwnd, data):
# 封装数据到 COPYDATASTRUCT 结构体
copydata = COPYDATASTRUCT()
copydata.dwData = 1 # 你可以使用自定义的数值
copydata.cbData = len(data)
copydata.lpData = data.encode('utf-8') # 将字符串编码为字节流

# 发送 WM_COPYDATA 消息
win32gui.SendMessage(hwnd, win32con.WM_COPYDATA, 0, ctypes.byref(copydata))

if __name__ == "__main__":

# 替换为目标窗口的标题或类名
target_window_title = "YourWindowTitle"

# 查找窗口句柄
hwnd = win32gui.FindWindow(None, target_window_title)

if hwnd == 0:
print(f"窗口标题为'{target_window_title}'的窗口未找到。")
else:
# 要发送的数据
data_to_send = "Hello, this is a test message."

# 发送 WM_COPYDATA 消息
send_copydata_message(hwnd, data_to_send)


环境是 win10 。python 版本 3.10.11
这样一段代码。
运行时报错:

Traceback (most recent call last):
File "D:\work\workspace\fetch\ctypes.py", line 2, in <module>
import ctypes
File "D:\work\workspace\fetch\ctypes.py", line 5, in <module>
class COPYDATASTRUCT(ctypes.Structure):
AttributeError: partially initialized module 'ctypes' has no attribute 'Structure' (most likely due to a circular import)


win32con 和 win32gui 都删掉,单独引入 ctypes 试过了,也不行
实在找不到问题所在。有没有大佬帮忙解惑
753 次点击
所在节点    Python
3 条回复
Vegetable
108 天前
D:\work\workspace\fetch\ctypes.py 和内置的 ctypes 包的名字冲突了,改成别的,比如 D:\work\workspace\fetch\ctypes_wrapper.py ,然后搞清楚你这个文件到底在引用谁,把引用都修改一下
sun82kg
108 天前
找到问题了。我被自己蠢哭
sun82kg
108 天前
@Vegetable 确实是这个问题,谢谢,我真的是蠢哭了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011820

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX