この質問は、previous questionに続きます。PyWin32 MakePyユーティリティとwin32comを使用してネットワーク統計情報を取得する
私のWindows 7
システムでNetwork Statistics
を取得しようとしています。PyWin32
です。
私は、その後のステップ:
1)
COM MakePy utility
を実行し、タイプライブラリの下network list manager 1.0 type library
を選択するよりも。プロセス上2)は、このpython fileを生成しました。
次私は今、私は上記で作成したオブジェクトobj
が提供するメソッドにアクセスしようとしています
import win32com.client as wc
obj = wc.Dispatch("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")
を使用して、クラスNetworkListManager(CoClassBaseClass)
のオブジェクトを作成しました。
help(obj)
は私に
Returns whether connected to internet or not
//Other methods removed
だから、今、私は
を使用するときに接続されているGet a network given a Network ID.
GetNetwork(自己、gdNetworkId = <PyOleEmpty object>
)を得ました
>>> obj.IsConnected True
正常に動作します。私は
>>> obj.GetNetwork()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ret = self._oleobj_.InvokeTypes(2, LCID, 1, (9, 0), ((36, 1),),gdNetworkId
com_error: (-2147024809, 'The parameter is incorrect.', None, None)
それを使用しようとするので、
今、私が直面しています問題はGetNetowrk
メソッドを使用する方法である私はまた、pythoncom.Empty
を使用してPyOleEmpty object
を作成しようとしたparemeterが、運としてそれを渡されました。
私はGetNetwork
は、パラメータが、INetworkクラスで定義されているGetNetworkId
方法としてNetworkID
を必要と理解しています。
私の質問はMakePy utility
を使って作成されたpythonファイルで定義されたクラスを使用する方法で、CoClass
ではありません。ネットワークIDが問題になります使用し
networks=obj.GetNetworks(win32com.client.constants.NLM_ENUM_NETWORK_CONNECTED)
for network in networks:
print (network.GetName(), network.GetDescription())
:
ニースはうまくいったけど、どうやってそれを理解したのだろうと思っていた。 – RanRag