web-dev-qa-db-ja.com

PythonでWindows APIを使用する方法をどのように学ぶべきですか?

私はWindows用のソフトウェアを構築した経験がほとんどなく、Windows APIを使用した経験もありませんが、Pythonにかなり慣れています。 PythonでWindows APIを使用する方法を学ぶにはどうすればよいですか?

21
UnkwnTech

正直なところ、違います。 Windows APIは、髪の毛で覆われた800ポンドのモンスターです。 チャーリーペッツォルドの15ポンドの本 はかつての標準的な参照でした。

そうは言っても、 Python for Windows 人々はいくつかの良い資料を持っています。マイクロソフトには API全体 があり、サンプルコードなどが含まれています。そして ウィキペディアの記事 は良い概要です。

36
Charlie Martin

約4年前、私はWindowsAPIを真に理解しようと試みました。当時はC#でコーディングしていましたが、フレームワークがAPI(それはそうだった)から私を抽象化しすぎているように感じました。そこで、Delphiに切り替えました(C++またはCも適切な選択でした)。

私の意見では、ネイティブコードを作成し、Windows APIと直接通信し、Windowsが直接使用するバッファー、ポインター、構造、および実際の構造に注意を払う言語で作業を始めることが重要です。 C#は優れた言語ですが、Windows APIの学習に最適ではありません。

次に、Mark Russinovichの本「Windows Internals」を購入します Amazonリンク 。これは第5版です。第6版は2012年4月にリリースされ、Server 2008R2およびWindows7に関する情報が追加されています。

そして今、Win32 APIを学ぶための最も重要な(そして最高の)リソースについては:

Mark Russinovichの Windowsオペレーティングシステム内部カリキュラム これは無料で提供されます。

インストラクターが生徒に教えるために使用するように設計されています。私はそれを経験しました、そしてそれは素晴らしいです。例、歴史、詳細な説明が満載。私の意見では、これはWindows APIを学ぶための理想的な方法です。

Mark Russinovichはマイクロソフトテクニカルフェローです(MSにはC#の作成者を含めて14人しかいません)。彼はMSに販売するまでWinternalsを所有していました。カーネギーメロンでコンピューターエンジニアリングの博士号を取得しており、マイクロソフトのカンファレンスで頻繁に発表をしていました(彼らが働いていた以前でも)。彼のプレゼンテーションは、私が毎年MicrosoftTechEdに参加する主な理由の1つです。

22
Mick

チュートリアルは避けてください(子供、子供向け、初心者レベルで書かれています)Petzold、Richter、Pietrek、Russinovich、Advをお読みください。 Win32apiニュースグループnews://comp.os.ms-windows.programmer.win32

7
kilo

theForgerのWin32 APIチュートリアル を強くお勧めします。それはCチュートリアルですが、彼はほとんどあなたの手を握って、あなたに基本を示します。それもかなり短いです、それはチュートリアルで素晴らしいです。

6
Giovanni Galbo

Win32 APIの学習は、概念と使用されるパターンの最初の理解の5%、RTFMの95%です。

それらの最初の5%については、Petzoldの本は本当に良いですが、私が見つけることができるのと同じくらいグーグルで見つけることができるいくつかのオンラインチュートリアルがあるはずだと思います。

本当に、コツをつかめば、何でもできるようになるのは本当に簡単です。そこに着いたら、おそらくQTのようなより良いものに移り、Win32APIに二度と触れない時が来るでしょう。今日では、オーバーヘッドが非常に大きく、快適さが極端に不足しているため、些細なこと以上に裸のWin32APIを実際に使用する人は誰もいません。

3
shoosh

"> Windows APIの使用方法を学ぶための無料のリソース(できればPythonで)

  1. pywin32 とともに Mark HammondおよびAndy RobinsonによるWin32でのPythonプログラミング を参照できます。

  2. pywin32 を使用したくない場合は、 ctypes — Python用の外部関数ライブラリ および ForgerのWin32 APIプログラミングチュートリアル を使用できます。

  3. 参照 サンプルコード:ミューテックス(pywin32およびctypes)を使用した共有メモリ

2
bhadra

Pythonについて質問したのに、なぜWin32 APIが必要なのですか?これは、小さくて高速なC/C++プログラムの作成に使用されます。ツールがPythonの場合、Windowsで見事に実行され、1%のコードと労力で洗練されたネイティブGUIを生成するwxPythonをダウンロードしてください。

2
Eli Bendersky

Charlie が言うように:「このApiは髪で覆われた800ポンドのモンスターです」。

Vbまたはc#( http://www.Microsoft.com/express/ )のVisual StudioのExpressバージョン(無料)をmsdnライブラリ( http://msdn.Microsoft.com/en-us/library/default.aspx )これにより、APIを必要なだけ公開できます。

1
Ray Tayek

昔々、私はいくつかのWin32 APIチュートリアルを www.relisoft.com で読みました。

彼らは反MFCとプロWin32APIショップであり、その理由の実際的な理由を説明するある種のマニフェストを持っています。

また、一般的なC++チュートリアルもあります。 99%の時間、私は彼らのプログラミングスタイルが好きです。

0
Mike

必要なものは、MSDN.COMで完全に無料です。 Win32は、C/C++、C#、およびVisual Basicを使用して簡単にプログラムできます。 C/C++をお勧めします。 Visual Studio Expressエディションをダウンロードできます ここ

すべてのドキュメント(省略形ではありません)は、Web here にあります。

Win32は、「Windowsのすべてのプログラミングインターフェイス」を意味するために大まかに使用されていることに注意してください。より一般的には、これはユーザーモードアプリケーションの基本的なネイティブAPIセットです。ドライバーとカーネルコンポーネント用の同様のAPIセットがあります。あなたはそれについて学ぶことができます ここ

Microsoftには、他にも多くのWindowsプログラミングインターフェイスがあります。 共通言語ランタイムと.NETフレームワーク は、Windowsの上にある管理されたレイヤーです。 DX9およびDX1 (ゲームプログラミングへの適切なリンク ここ )など、他にも多くのAPIファミリがあります。

0
Foredecker

あなたはこれらの2冊の本から始めなければなりません。

Petzold 本:メッセージやメッセージポンプの学習に最適、GDIおよびUser32に関するもの。

Richter 本:Windowsベースサービス、つまり。プロセス、メモリ、スレッド、dll

0
m-sharp

うーん...たくさんの人がカートを馬の前に置いています。私があなたに持っている質問は、なぜWin32を学びたいのですか?

Windowsユーザーインターフェイスを構築できるようにそれを学びたい場合は、代わりにwxPythonを検討してください。非視覚的なWin32 APIの呼び出しのみを計画している場合、Petzoldブックは最適ではない可能性があります。 [〜#〜] swig [〜#〜] のようなツールがあり、Win32などのライブラリをPythonなどの言語から簡単に呼び出すことができます。

0
Brian Lyttle