Как мне научиться использовать Windows API с Python? - PullRequest
20 голосов
/ 05 декабря 2008

У меня очень мало опыта по созданию программного обеспечения для Windows и нет опыта использования Windows API, но я достаточно хорошо знаком с Python. Как мне научиться использовать Windows API с Python?

Ответы [ 12 ]

33 голосов
/ 05 декабря 2008

Честно говоря, нет. Windows API - это 800-фунтовый монстр, покрытый волосами. 15-фунтовая книга Чарли Петцольда была каноническим справочником.

Тем не менее, у Python для Windows есть хороший материал. Microsoft имеет весь API онлайн , включая пример кода и тому подобное. И статья Википедии - хороший обзор.

21 голосов
/ 08 декабря 2008

Около 4 лет назад я решил по-настоящему понять Windows API. В то время я писал код на C #, но мне казалось, что фреймворк слишком сильно абстрагирует меня от API (что и было). Поэтому я перешел на Delphi (C ++ или C также были бы хорошим выбором).

По моему мнению, важно, чтобы вы начали работать на языке, который создает собственный код и обращается непосредственно к Windows API и заставляет вас заботиться о буферах, указателях, структурах и реальных конструкциях, которые Windows использует напрямую. C # - отличный язык, но не лучший выбор для изучения Windows API.

Далее купите книгу Марка Руссиновича "Windows Internals" Ссылка Amazon . Это 5-е издание. 6-е издание выйдет в апреле 2012 года и добавит информацию о Server 2008 R2 и Windows 7.

А теперь самый важный (и лучший) ресурс для изучения Win32 API:

Учебная программа по внутренним операционным системам Windows Марка Руссиновича предлагается бесплатно.

Он предназначен для использования преподавателем для обучения студентов. Я прошел через это, и это потрясающе. Полный примеров, истории и подробных объяснений. На мой взгляд, это идеальный способ изучения Windows API.

Марк Руссинович - технический специалист Microsoft (в MS только 14 человек, включая создателя C #). Он имел обыкновение владеть Winternals до тех пор, пока не продал его MS, у него есть докторская степень в области компьютерной инженерии от Carnegie Mellon, он часто выступал на конференциях Microsoft (даже до того, как работал на них), и он безумно умный. Его презентации - одна из основных причин, почему я посещаю Microsoft TechEd каждый год.

7 голосов
/ 05 декабря 2008

Избегайте учебников (написано детьми, для детей, уровень новичка) Читайте Петцольда, Рихтера, Петрека, Руссиновича и Адв. Win32 api группа новостей Новости: //comp.os.ms-windows.programmer.win32

6 голосов
/ 05 декабря 2008

Я настоятельно рекомендую Руководство по Win32 API theForger . Это учебник C, но он в значительной степени держит тебя за руку и показывает основы. Это также довольно коротко, что приятно в учебнике.

3 голосов
/ 05 декабря 2008

Обучение Win32 API - это 5% первоначального понимания концепций и используемых шаблонов и 95% RTFM.

Для этих начальных 5% книга Петцольда действительно хороша, но я подозреваю, что должны быть некоторые онлайн-учебники, которые вы можете найти в Google так же хорошо, как я могу найти.

На самом деле, как только вы это освоите, очень легко сделать что-нибудь. Как только вы туда доберетесь, вероятно, настало время перейти к чему-то более лучшему, например, к QT, и никогда больше не трогать Win32 API. В настоящее время никто не использует голый Win32 API для чего-то большего, чем просто тривиальное из-за огромных накладных расходов и чрезвычайного отсутствия комфорта.

2 голосов
/ 05 декабря 2008

Поскольку вы спрашивали о Python, зачем вам Win32 API? Это используется для написания небольших, быстрых программ на C / C ++. Если ваш инструмент - Python, просто скачайте wxPython, который прекрасно работает в Windows и производит гладкий встроенный графический интерфейс с 1% кода и усилий.

1 голос
/ 05 декабря 2008

"> бесплатный ресурс, чтобы узнать, как использовать Windows API (желательно с Python)

  1. Вы можете сослаться на Программирование Python на Win32 Марка Хаммонда и Энди Робинсона вместе с pywin32 .

  2. Если вы не заинтересованы в использовании pywin32 , вы можете использовать ctypes - библиотеку внешних функций для Python и Учебник по программированию Win32 API Forger .

  3. См. Пример кода: Общая память с Mutex (pywin32 и ctypes)

1 голос
/ 05 декабря 2008

Как Чарли говорит: «Этот Api - это 800-фунтовый монстр, покрытый волосами».

Подумайте об использовании экспресс-версии (бесплатной) Visual Studio для vb или c # (http://www.microsoft.com/express/) вместе с библиотекой msdn (http://msdn.microsoft.com/en-us/library/default.aspx).), так что вы получите столько доступа к API, сколько пожелаете .

0 голосов
/ 02 июля 2009

Вы должны начать с этих двух книг.

Petzold книга: Отлично подходит для изучения сообщений и сообщений, GDI и User32.

Рихтер книга: Windows base services, а именно. Процессы, память, потоки и библиотеки

0 голосов
/ 08 декабря 2008

Хмм ... многие люди ставят телегу перед лошадью на этом. У меня к вам вопрос: почему вы хотите изучать Win32?

Если вы хотите изучить его, чтобы создавать пользовательские интерфейсы Windows, возможно, вместо этого рассмотрите wxPython. Если вы планируете использовать невизуальные интерфейсы Win32 API, книга Petzold может оказаться не самой лучшей. Существуют такие инструменты, как SWIG , которые упрощают вызов библиотек, таких как Win32, из языков, таких как Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...