web-dev-qa-db-ja.com

win32com.client.Dispatch( "WScript.Shell")とは正確には何ですか?

キーストロークをシミュレートするPythonコードの一部を探していました。win32com.client.Dispatch("WScript.Shell")を使用して何かに遭遇しました。私は(まったく)Windowsのファンではありませんが、ゲームの自動化で友達を助けます。

問題が発生しました。これは、メモ帳やFirefoxで正常に機能します。たとえば、書き込みはできますが、彼のゲームでは機能しません。それが彼のゲームによるものなのか、私の自動化によるものなのかを知るために、win32com.clientと実際にWScript.Shellを表すものについて詳しく説明したいと思います。

皆さん、ありがとうございました

9
petosorus

いくつかの引用:

前に説明したように、オートメーションオブジェクトは、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

10
NorthCat