問題タブ [pythoncom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
676 参照

python - ProgID を持たない COM オブジェクトをクラス/インターフェイス名でインスタンス化する

pywin32クライアント側 COM のドキュメントでは、COM オブジェクトをインスタンス化する基本的な方法を示しています。

PersistentZoneIdentifierファイルがダウンロードされた場所を指定するためにゾーン識別子を操作するのと同じように作業しようとしています - 古い新しいもの - MSDNブログHKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}のレジストリが示すように、そのクラスには対応するProgID.

インスタンス化するものと、そこから明らかにクエリするものpythoncom.CoCreateInstanceを受け入れる基本的な関数があることがわかります。CLSIDIID

しかし、人間が読める名前ではなく、理解できない GUID を使用する必要があるため、これは不便です。


質問は:

  • pywin32前述の GUID を名前で検索する /underlying WinAPI に標準的な方法はありますか? (手動でレジストリを検索することはお勧めしません)
  • または、そのオブジェクトを名前でインスタンス化する他の方法はありますか?

私が試して失敗したこと: win32com.client.IDispatch(<class/interface name>), pythoncom.IID(<class/interface name>). もちろん、Net、MSDN、および PyWin32 のドキュメントも調べました。

0 投票する
1 に答える
1119 参照

python - 同じスレッド内の複数のオブジェクトに対する win32com.client.DispatchWithEvents

次のコードを使用して、2 つの別々の受信トレイで同時に OnItemAdd イベントをリッスンしようとしています。

ただし、 pythoncom.PumpMessages() は機能していないようです。コードをリファクタリングして、1 つの受信トレイのアイテムのみをリッスンすると、機能します。

これを解決する方法についてのアイデアはありますか?

0 投票する
0 に答える
1708 参照

python - COMメソッドのExcelの新しいシートを呼び出すpythoncomエラー

私はいくつかの Python/Excel アプリケーションに取り組んできましたが、興味深い問題に遭遇しました。エラーが発生する程度に例を単純化しました。

(警告 - ブレーク機構なしの無限ループ)

実行すると、Excel が開き、新しいワークブックが追加され、アプリケーションまたはワークブック オブジェクトのいずれかでイベントが待機されます。

ワークブックに新しいシートを追加する場合にのみ、Excel で可能なイベントを実行しても (イベント クラスで定義されたハンドラーがないため) 何も起こりません。次のエラーがすぐに生成されます。

私は pythoncom.PumpWaitingMessage() の周りに try/except を置くことができることを知っています、そしてそれがpythonicの方法であることを知っています:Dしかし、私はまだこのエラーの原因を知りたいと思っています... 4回続けて


編集:エラーの表示を避けるために、ポンプの周りを試す/除くは機能しません

0 投票する
0 に答える
298 参照

python - alt+tab を繰り返し押すと Python のスクリプトがクラッシュする (pyhook と pythoncom)

ユーザーが押すキーをキャプチャするWindows 10のPython 3.5.2でスクリプトを作成しています。コードは、alt + tabを押してウィンドウを切り替える場合を除いて完全に機能し、すぐにクラッシュすることもあれば、繰り返し押すとクラッシュすることもあります。

最も基本的なコードは次のとおりです。

問題のあるビデオがあります。

どんな状況でもスクリプトを停止したくありません。どうすれば修正できますか?

ありがとう。