キーストロークをシミュレートするPythonコードの一部を探していました。win32com.client.Dispatch("WScript.Shell")
を使用して何かに遭遇しました。私は(まったく)Windowsのファンではありませんが、ゲームの自動化で友達を助けます。
問題が発生しました。これは、メモ帳やFirefoxで正常に機能します。たとえば、書き込みはできますが、彼のゲームでは機能しません。それが彼のゲームによるものなのか、私の自動化によるものなのかを知るために、win32com.client
と実際にWScript.Shell
を表すものについて詳しく説明したいと思います。
皆さん、ありがとうございました
いくつかの引用:
前に説明したように、オートメーションオブジェクトは、IDispatchインターフェイスを使用してメソッドとプロパティを公開するCOMオブジェクトです。では、Pythonからこれらのオブジェクトをどのように使用するのでしょうか? win32com.clientパッケージには、オートメーションオブジェクトへのアクセスを提供するための多数のモジュールが含まれています。このパッケージは、後で説明するように、レイトバインディングとアーリーバインディングの両方をサポートします。
IDispatchベースのCOMオブジェクトを使用するには、メソッドwin32com.client.Dispatch()を使用します。このメソッドは、最初のパラメーターとして、作成するオブジェクトのProgIDまたはCLSIDを取ります。 Microsoft Excelのドキュメントを読むと、ExcelのProgIDはExcel.Applicationであることがわかります。したがって、Excelにインターフェイスするオブジェクトを作成するには、次のコードを使用します。
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
( this から)
WSript.Shellオブジェクトは、システム情報と環境変数を読み取り、レジストリを操作し、ショートカットを管理するための関数を提供します。 (from: 12 )