3

IronPythonでテストスクリプトを書いて、ウィンドウが表示されるかどうかを確認したい。メイン アプリのプロセスの pid があり、pid に関連するウィンドウ タイトルのリストを取得したいと考えています。

(私の知る限り) IronPython から直接 win32api にアクセスできないため、FindWindowEx などの win32api 呼び出しの使用を避けようとしていました。組み込みの .net クラスを使用してこれを行う方法はありますか? 私が遭遇したもののほとんどは、以下のような win32api の使用を推奨しています。

.NET (C#): プロセス ハンドルまたは PID しかないときに子ウィンドウを取得しますか?

更新: 私がやろうとしていたことの回避策を見つけました。以下に答えてください。

4

3 に答える 3

3

IronPython 2.6 以降、ctypesモジュールがサポートされています。このモジュールは、C 互換のデータ型を提供し、DLL で関数を呼び出すことができます。簡単な例:

import ctypes
buffer = ctypes.create_string_buffer(100)
ctypes.windll.kernel32.GetWindowsDirectoryA(buffer, len(buffer))
print buffer.value
于 2012-08-07T07:47:03.770 に答える
2

以下の記事は、IronPython から間接的に win32api にアクセスする方法を示しています。CSharpCodeProvider CompileAssemblyFromSource メソッドを使用して、提供された C# ソース コード文字列からメモリ内のアセンブリをコンパイルします。その後、IronPython はアセンブリをインポートできます。

IronPython から C# を動的にコンパイルする

于 2008-10-20T16:48:41.187 に答える
0

水に入らずに泳げるかと尋ねるようなものです。Windowsからの情報が必要な場合、唯一のオプションはwin32apiを使用することです。その方法については、たくさんの例があります。

この回答が気に入らない場合は、質問にコメントを残してください。この回答を削除します。これにより、質問は未回答の質問リストに残ります。

于 2008-09-24T19:28:30.557 に答える