問題タブ [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.
python - ProgID を持たない COM オブジェクトをクラス/インターフェイス名でインスタンス化する
pywin32
クライアント側 COM のドキュメントでは、COM オブジェクトをインスタンス化する基本的な方法を示しています。
PersistentZoneIdentifier
ファイルがダウンロードされた場所を指定するためにゾーン識別子を操作するのと同じように作業しようとしています - 古い新しいもの - MSDNブログ。HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}
のレジストリが示すように、そのクラスには対応するProgID
.
インスタンス化するものと、そこから明らかにクエリするものpythoncom.CoCreateInstance
を受け入れる基本的な関数があることがわかります。CLSID
IID
しかし、人間が読める名前ではなく、理解できない GUID を使用する必要があるため、これは不便です。
質問は:
pywin32
前述の GUID を名前で検索する /underlying WinAPI に標準的な方法はありますか? (手動でレジストリを検索することはお勧めしません)- または、そのオブジェクトを名前でインスタンス化する他の方法はありますか?
私が試して失敗したこと: win32com.client.IDispatch(<class/interface name>)
, pythoncom.IID(<class/interface name>)
. もちろん、Net、MSDN、および PyWin32 のドキュメントも調べました。
python - 同じスレッド内の複数のオブジェクトに対する win32com.client.DispatchWithEvents
次のコードを使用して、2 つの別々の受信トレイで同時に OnItemAdd イベントをリッスンしようとしています。
ただし、 pythoncom.PumpMessages() は機能していないようです。コードをリファクタリングして、1 つの受信トレイのアイテムのみをリッスンすると、機能します。
これを解決する方法についてのアイデアはありますか?
python - COMメソッドのExcelの新しいシートを呼び出すpythoncomエラー
私はいくつかの Python/Excel アプリケーションに取り組んできましたが、興味深い問題に遭遇しました。エラーが発生する程度に例を単純化しました。
(警告 - ブレーク機構なしの無限ループ)
実行すると、Excel が開き、新しいワークブックが追加され、アプリケーションまたはワークブック オブジェクトのいずれかでイベントが待機されます。
ワークブックに新しいシートを追加する場合にのみ、Excel で可能なイベントを実行しても (イベント クラスで定義されたハンドラーがないため) 何も起こりません。次のエラーがすぐに生成されます。
私は pythoncom.PumpWaitingMessage() の周りに try/except を置くことができることを知っています、そしてそれがpythonicの方法であることを知っています:Dしかし、私はまだこのエラーの原因を知りたいと思っています... 4回続けて
編集:エラーの表示を避けるために、ポンプの周りを試す/除くは機能しません
python - alt+tab を繰り返し押すと Python のスクリプトがクラッシュする (pyhook と pythoncom)
ユーザーが押すキーをキャプチャするWindows 10のPython 3.5.2でスクリプトを作成しています。コードは、alt + tabを押してウィンドウを切り替える場合を除いて完全に機能し、すぐにクラッシュすることもあれば、繰り返し押すとクラッシュすることもあります。
最も基本的なコードは次のとおりです。
問題のあるビデオがあります。
どんな状況でもスクリプトを停止したくありません。どうすれば修正できますか?
ありがとう。