1

私はPython 2.7で独自のアプリケーションを持っています。外部の .exe アプリケーションを制御したい。次のようなアプリケーションを起動できますklm.exe

from win32com.client import *

ExtApp = Dispatch("Wscript.Shell")
ExtApp.Run("E:\XYZ\ABC\klm")

しかし、タブ、ラジオ ボタン、プッシュ ボタンなどがあるため、この外部 .exe アプリケーションを完全に制御したいと考えています。

そうする方法はありますか?

4

1 に答える 1

1

しかし、タブ、ラジオ ボタン、プッシュ ボタンなどがあるため、この外部 .exe アプリケーションを完全に制御したいと考えています。

そうする方法はありますか?

はい、アプリケーションに応じて複数の方法があります。

すでに COM を使用している場合 (アプリを起動するためだけに COM を使用している理由はわかりませんが)、アプリには COM オートメーション ( IDispatch) インターフェイスがありますか? もしそうなら、VB# (または VBScript または C# など) からそれを使用する方法を示すドキュメントがおそらくあるでしょう。これは、Python およびwin32com. (このようなアプリケーションの例については、Outlook自動化ドキュメントを参照してください)。

COM オートメーション インターフェイスがない場合でも、低レベルの COM インターフェイスが存在する可能性がありwin32comます。代わりに、GUI が使用するのと同じ下位レベルの機能と対話することになります。(良い例については、Apple のiTunes COM Interfaceを参照してください。)

COM がまったくサポートされていない場合、最も簡単な方法は、Windows WM_* イベントを介して自動化することです。pywin32 のドキュメントにはそれを行う例がいくつかありますが、AutoPypywinauto/などのより高度なラッパーも多数あり、作業swapyがずっと簡単になります。これらは無料で商用のもので数十ありますが、Python の外に出て別のスクリプト システムを使用したい場合はさらに多くのものがあり、SO はそれぞれの長所と短所を議論するのに適した場所ではありません。

最後に、いつでもアプリのウィンドウを無視して、システム マウスを自動化することができますが、これはほとんどの場合、愚かなことです。

于 2013-08-29T18:24:11.220 に答える