大家好,我是斌哥。
相信很多学习的Python的小伙伴都会遇到这样的难点:在Windows上开发Python项目,尽管Python的库成千上万,但是针对特殊情况,还是需要考虑到API来做特殊的需求。
在Python上,window API调用大致分为2种方法。
1、Python的第三方库:Pywin32
2、引用windowAPI动态链接库(将会在另一篇文章具体说明,包括指针,结构体在Python内怎么定义,怎么通过Python传递结构体指针给API等等,相信看完你也能开发一个Pywin32)
现在我们主要说第一种方法,我们通过Pywin32提供的接口来达到间接调用windowsAPI的效果。
安装完成之后,我们通过pip查询是否成功安装。
pip list | findstr "pywin32"
pip list | findstr "pywin32"查看pywin32所在路径
pip show pywin32
pip show pywin32pip show pywin32 | findstr "Location:"可查看路径Location所提示的路径,然后打开其下win32目录。
示例win32目录下的所有pyd为扩展名的都是pywin32的模块,每个模块都提供了相应模块名的API。
pywin32提供的模块例如:
win32api 提供了常用的用户API
win32clipboard 提供了有关粘贴板的API
win32console 提供了有关控制台的API
win32gui 提供了有关windows用户界面图形操作的API
win32service 提供了有关服务操作的API
win32file 提供了有关文件操作的API
等等
此外还有几个相当重要的宏定义的文件(这些宏文件定义了有关windowsAPI内所定义的宏)
他们在win32目录下的lib目录中可以找到。
pywin32提供的宏最常用的2个宏定义文件即是:win32con和winerror
win32con:基本上所有宏都集成在这里(5k+)
winerror:系统错误码的宏定义 来源于winerror.h
打开Python Shell,尝试调用一个MessageBox:
import win32api,win32con
win32api.MessageBox(None,"Hello Pywin32","pywin32",win32con.MB_YESNO)
示例从上例可以看出,Pywin32设计这些宏文件的作用,其目的就是让我们可以直接通过windowsSDK内提供的宏名来直接使用,就像用C/C++开发一样,不会那么陌生。
我是斌哥,喜欢请点击关注。
斌哥说Python,只专注于Python技术!