我在Windows软件开发方面经验非常少,而且从未使用过Windows API,但我对Python相当熟悉。我应该如何学习使用Python来调用Windows API?
约4年前,我开始深入了解Windows API。当时我使用的是C#编程语言,但感觉该框架将我从API中抽象出太多(实际确实如此)。因此,我转向使用Delphi(也可以选择C++或C)。
在我看来,重要的是你开始使用一种创建本地代码并直接与Windows API交互的编程语言,并使你关注缓冲区、指针、结构和Windows直接使用的真实构造。C#是一种很好的编程语言,但不是学习Windows API的最佳选择。
接下来,购买Mark Russinovich的书籍《Windows Internals》亚马逊链接,这是第5版,第6版于2012年4月发布,新增有关Server 2008 R2和Windows 7的信息。
Mark Russinovich的Windows Operating Systems Internals Curriculum,提供免费下载。
它是为教师设计,用于教授学生。我学习过这个课程,感觉非常棒。这个课程充满了例子、历史和详细的解释。在我看来,这是学习Windows API的理想方法。
Mark Russinovich是微软技术研究院的技术上席(MS只有14位技术上席,其中包括C#的创造者),曾经拥有Winternals,后将其出售给微软,并拥有卡内基梅隆大学的计算机工程博士学位。他曾多次在微软会议上发表演讲(即使在他为微软工作之前也是如此),并且非常聪明。他的演讲是我每年参加微软TechEd的主要原因之一。
避免阅读针对新手的教程(由孩子编写) 阅读Petzold、Richter、Pietrek、Russinovich和Adv.Win32 API newsgroup news://comp.os.ms-windows.programmer.win32
既然你问到Python,那么为什么需要Win32 API?Win32 API 通常用于编写小型、快速的 C/C++ 程序。如果你正在使用 Python,只需下载 wxPython,在 Windows 上运行良好,并且用 1% 的代码和努力生成流畅的本地 GUI。
">免费资源,学习如何使用Windows API(最好是用Python)
您可以参考Mark Hammond和Andy Robinson的Python Programming on Win32,以及pywin32。
如果您不想使用pywin32,则可以使用ctypes- Python的外部函数库和Forger的Win32 API编程教程。
正如Charlie所说:“这个API就像一只长满毛发的800磅怪物”。
考虑使用Visual Studio的Express版本(免费)进行VB或C#开发(http://www.microsoft.com/express/),并结合MSDN库(http://msdn.microsoft.com/en-us/library/default.aspx)使用。这将为您提供尽可能多的API使用经验。
嗯...很多人在这个问题上本末倒置了。我想问你的问题是:你为什么想学习Win32?
如果你想学习它来构建Windows用户界面,也许考虑使用wxPython。如果你只计划调用非可视Win32 API,则Petzold书可能不是最好的选择。有一些工具,如SWIG,可以使从诸如Python之类的语言更轻松地调用Win32等库。
从前,我曾经在 www.relisoft.com 上阅读过一些Win32 API教程。
它们是反MFC和赞成Win32 API的团队,并有一份类似宣言的东西,解释了实际原因。
他们还有一个通用的C++教程。就我所知,99%的时间我都喜欢他们的编程风格。