1

Python は初めてなので、Python スクリプトが Windows プログラム (Delphi、FWIW で開発) と通信できるようにしたいと考えています。

基本的に、Python スクリプトは他のデータ ソースから一連のデータをダウンロードし、ダウンロードされたレコードごとにログを記録して Windows プログラムに伝えます。ロギングには、可能であれば Python の標準ロギング ライブラリを使用しますが、ダウンロードのプロセスをエンド ユーザーに表示できるように、win32 プログラムに伝える最も簡単な方法は何ですか?

注: 私はPython4Delphiを知っていますが、十分に文書化されていないため、物事を単純にしたいと考えています。

編集 1: Delphi exe は 1 つだけで、Python スクリプトは複数あります。

ありがとう。

4

5 に答える 5

3

Delphi プログラムが Python プログラムを実行している場合は、スクリプトで進捗メッセージを標準出力に書き込むだけで、Delphi プログラムでそれらを読み取ることができます。(このようにすれば、1 つのプログラムが Python で、もう 1 つのプログラムが Delphi であるかは問題ではありません。どちらのプログラムも、任意の言語で記述できます。)

于 2011-03-31T16:18:57.900 に答える
1

名前付きパイプまたはソケットを使用して、PythonコードとDelphiコードの間で通信できます。Pythonを名前付きパイプにインターフェースするために、ctypesを使用できます(ここの例)。

または、DelphiでCOMコンポーネントを作成し、Pythonから呼び出すこともできます(ActivePythonには必要なすべてのWindowsビットが含まれています)。

于 2011-03-31T16:01:16.220 に答える
0

PyWin32 パッケージを使用します: http://pypi.python.org/pypi/pywin32 WinAPI 全体へのアクセスを提供します。

たとえば、COM を使用できます: http://docs.activestate.com/activepython/2.7/pywin32/html/com/win32com/HTML/docindex.html

于 2011-03-31T17:06:02.337 に答える
0

私自身の考え:

多分PostMessage(WM_CopyData)Pythonスクリプトを呼び出しますか?しかし、Python でその win32 API を呼び出す最良/標準的な方法は何ですか?

于 2011-03-31T16:53:37.293 に答える
0

一方に単純なソケット サーバーを作成し、もう一方に単純なソケット クライアントを作成します。今では、同じコンピューター上で会話するだけでなく、ローカル エリア ネットワークやインターネットを介して会話することもできます。簡単で楽しい。

Python では、Delphi と同様に、ソケット プログラミング ライブラリ オプションが豊富に用意されています。Indy は、Delphi で最も一般的なソリューションです。Python には、使用するのに十分堅牢な単純なソケット サーバーも組み込まれています。

また、Python は Windows を超えて移植可能であるため、名前付きパイプと COM に限定して、Python プログラムを Windows に永久にチェーンすることを本当に望んでいますか?

ただし、スクリプトが Delphi プログラムの付属物である場合は、Python4Delphi (Python 関数を呼び出してその結果を使用する機能) がまさに必要なものであり、私の知る限り、使いやすいため十分に文書化されていません。その必要はありません。最初の を行う前に、WriteLn に関するドキュメントをどれくらい読みましたWriteLn('HelloWorld')

于 2011-03-31T20:29:12.737 に答える