草庐IT

Python ctypes : SetWindowsHookEx callback function never called

我正在尝试用Python编写一个程序,它知道何时显示警告框/对话框。它处理多个显示器,我希望它在任务栏图标闪烁、弹出错误/通知等时在辅助显示器上显示可视化。据我所知,检测这些事件的方法是使用消息Hook,如下所述:http://msdn.microsoft.com/en-us/library/ms632589%28v=vs.85%29.aspx我什至幸运地找到了一个从Python访问SetWindowsHookEx函数的示例。(此特定示例使用鼠标信号,但我可以更改常量以监听不同的消息)。http://www.python-forum.org/pythonforum/viewtopic.

windows - 完全迷失在 "Installing"OpenCV/ctypes-opencv for Python 3

编辑:realsolution现在OpenCV支持python3。我将在下面为碰巧被旧设置卡住的任何人留下详细信息。我正在尝试获取OpenCV使用Python3。一位friend向我展示了ctypes-opencv这似乎适用于Python3。问题是我完全不知道如何“安装”或让任何代码工作。我已经按照我能从一些提到在google上安装的人那里找到的所有说明进行操作,但这些说明似乎都不起作用,或者我什至无法完成他们提到的基础知识。我只是在研究Python3附带的IDLE版本。没有IDE。从OpenCV开始:唯一windowsinstallerforOpenCV2.1是一个VisualStu

python - 使用 Python ctypes 在 AutoIt DLL 中调用函数

我想调用AutoItdll中的函数,我使用Python在C:\ProgramFiles(x86)\AutoIt3\AutoItX\AutoItX3.dll中找到它。我知道我可以使用win32com.client.Dispatch("AutoItX3.Control")但我无法安装该应用程序或在系统中注册任何内容。到目前为止,这是我所在的位置:fromctypesimport*path=r"C:\ProgramFiles(x86)\AutoIt3\AutoItX\AutoItX3.dll"autoit=windll.LoadLibrary(path)以下是有效的方法:autoit.AU3

python ctypes将指向结构的指针作为参数发送给 native 库

我正在尝试为Linux中的native库编写一个包装器。问题是这样的:定义在c:intmymethod(mystruct*ptr)在python中:_lib.mymethod.argtypes=(ctypes.POINTER(mystruct),)_lib.mymethod.restype=ctypes.c_ints=mystruct()_lib.mymethod(ctypes.byref(s))#raises:expectedLP_mystructinstanceinsteadofpointertomystruct_lib.mymethod(ctypes.pointer(s))#ra

Python 使用 ctypes 自定义结构调用 C 共享库

我在Linux系统上从Python调用C共享库。我遇到的问题是C库中的函数将指向结构的指针作为参数。然后它为结构数组分配内存,用数据填充数组并返回。所以我将函数定义为fromctypesimport*classmyStruct(Structure):_fields_=[("id",c_uint),"name",c_char*256)]library.func.argtypes=[POINTER(myStruct)]然后我这样调用它:Myfoo=myStructFoo=pointer(Myfoo)Bar=library.func(Foo)foriinrange(Bar):print("i

python - 如何使用指向自身的指针在 ctypes 中设置结构?

我有以下结构的C声明:structvnode{charfirstchar;uint8_twordlength;boolis_red;structvnode*left;structvnode*right;structtextelem*texts;};非常典型的树,带有一些负载。我试图将其重写为以下ctypes声明:classVNODE(Structure):_fields_=[("firstchar",c_char),("wordlength",c_ubyte),("is_red",c_bool),("left",POINTER(VNODE)),("right",POINTER(VNOD

python - 如何使用 Python 的 ctypes 和 readinto 读取包含数组的结构?

我们有一些由C程序创建的二进制文件。一种类型的文件是通过调用fwrite将以下C结构写入文件来创建的:typedefstruct{unsignedlongintfoo;unsignedshortintbar;unsignedshortintbow;}easyStruc;在Python中,我读取这个文件的结构如下:classeasyStruc(Structure):_fields_=[("foo",c_ulong),("bar",c_ushort),("bow",c_ushort)]f=open(filestring,'rb')record=censusRecord()while(f.r

Python ctypes : How do I flush output from stderr?

我已经使用python的ctypes编写了一些函数回调来访问DLL中的函数。用于构建该DLL的代码使用fprintftostderr在其中包含一些调试打印语句。但是,当我运行我的python代码时,我看不到stderr的输出始终如一。我很少会看到它将输出从stderr刷新到我正在使用的控制台。我试过用“python-ufoo.py”运行它,但这也无济于事。有什么建议吗? 最佳答案 都是一样的stderr。sys.stderr.flush() 关于Pythonctypes:HowdoIfl

python - 我需要加速一个功能。我应该使用 cython、ctypes 还是其他东西?

通过编写遗传编程类型的应用程序,我从学习Python中获得了很多乐趣。在这个网站上,我从TorstenMarek、PaulHankin和AlexMartelli那里得到了一些很好的建议。程序有4个主要功能:(随机地)生成一个表达式树。评估树的适应度杂交变异作为生成、杂交和变异的所有调用“评估适应性”。它是最繁忙的功能,也是速度方面的主要瓶颈。正如遗传算法的本质一样,它必须搜索巨大的解空间,所以越快越好。我想加快这些功能中的每一个。我将从健康评估器开始。我的问题是最好的方法是什么。我一直在研究cython、ctypes和“链接和嵌入”。它们对我来说都是新的,而且目前完全超出了我的能力范围

当 rootfs 为只读且/tmp 为 noexec 时,Python ctypes 段错误

我正在尝试将Python用于运行Linux的Arm处理器上的嵌入式应用程序(从X86/Linux交叉编译的CPython2.7.3)。在我开始保护设备以防止篡改之前,它一直运行良好。首先,我将rootfs设置为只读,既可以防止rootfs在突然断电时损坏,也可以防止未经授权的用户修改我们的主要代码。尽管如此,python和我们的ctypes库仍继续正常工作。/tmp目录被映射到tmpfs(ramdrive)。另一个强化步骤是在tmpfs分区上设置noexec标志,以防止用户以某种方式上传任何可能导致本地root攻击的代码。设置了这两个选项后,导入ctypes会立即产生段错误:root@