斌哥说

大家好,我是斌哥。

相信很多学习的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 pywin32

pip 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技术!