windows下面的python扩展-win32all 和ctypes
来源:互联网 发布:java聊天系统源码 编辑:程序博客网 时间:2024/05/09 04:35
2006年5月6日 22:06:44
今天看了一下windows下面的python扩展。主要有两个类库。
一、win32all
其实这个就是pythonwin的扩展包,包括一个IDE。以前只是用IDE,没用过win32的扩展。有一个帮助文档的,不过组织的不是很好,没有一
个合适的sample或者setp by step。win32all根据功能分成不同的子库,如调用api的win32api,调用net命令的win32net,剪贴板操作的
win32clipboard,odbc模块的odbc(这个我倒是用过)
使用win32ap来输出一个对话框的程序代码如下:
import win32api #winapi库
import win32con #windows常数定义
win32api.MessageBox(win32con.NULL, "提示信息", "提示标题", win32con.MB_OK | win32con.MB_ICONINFORMATION)
输出一个messagbox,标题为"提示标题",提示文本为"提示信息",对话框图标为提示图标。
发现pythonwin下,不能提示出api的参数,不知道为什么。美中不足吧。
某些api的参数和返回值是被修改过了的,如GetTempPath,需要注意察看文档。
二、ctypes
这个类库是专门用来进行python到C类型转换的,它不只是针对win32的api,而是任意的动态库都适用,包括linux下面的so。对win api有特
殊的照顾,不用。
调用MessageBox的同样功能的代码为:
import ctypes #cytpes库
import win32con #windows常数定义
msgbox = ctypes.windll.user32.MessageBoxA
msgbox(win32con.NULL, "提示信息", "提示标题", win32con.MB_OK | win32con.MB_ICONINFORMATION)
不需要指定参数类型也可以调用。可以通过指定参数类型,在调用前进行参数检查。
msgbox.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int]
此时,执行msgbox(win32con.NULL, "提示信息", "提示标题", "Wrong_arg_type")
出现异常:
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
ArgumentError: argument 4: exceptions.TypeError: int expected instead of str instance
如果不指定参数类型, 则会传递错误的类型。
此外,函数默认的返回值类型为integer。如果为其他类型,需要通过restype参数指定。
ctypes调用自定义的动态库的例子:(testDLL.dll为自己写的dll,里面包含一个msgbox函数)
myDLL = ctypes.cdll.LoadLibrary("testDLL.dll") #加载testDLL.dll,需要确保testDLL.dll在当前目录下
myDLL.msgbox() #调用msgbox函数
这个库的IDE提示更是少的可怜, 包括文档都不多,狂郁闷ing.
不过还好api的声明可以查MSDN 呵呵
- windows下面的python扩展-win32all 和ctypes
- ctypes模块扩展python
- python下面通过ctypes模块调用c++库的方法
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- python 线程,GIL 和 ctypes
- python 线程,GIL 和 ctypes
- python 线程,GIL 和 ctypes
- python 线程,GIL 和 ctypes
- python 线程,GIL 和 ctypes
- 怎么学英语?
- 数据库常用连接方法
- Hibernate的检索策略--这个表格不错
- ASP.NET中DataGrid自定义删除
- 高效工作学习必读
- windows下面的python扩展-win32all 和ctypes
- 如何用Delphi写出强大的抓图软件
- 用delphi及simpleTCP控件写客户/服务器程序时的问题
- 用PHP通过HTTP POST到一个远程WEB SITE上
- Hibernate的检索策略-设定检索策略的属性
- 类型转换的问题
- 技术问答、职业规划、其他……
- asp.net 2.0中文件编码问题
- Sam.Data.dll - 同时能访问SQL Server和ACCESS的数据库组件