問題タブ [moniker]

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 投票する
2 に答える
1891 参照

winapi - COMサーバーのプロセスIDを取得します

HWNDに直接送信するWindowsメッセージと、自動化されたアプリケーションによって公開されるCOMサーバーへの呼び出しを組み合わせて自動化を行っています。

複数のインスタンスが実行されている場合は、COMサーバーのプロセスIDを判別できる必要があります。これにより、Windowsメッセージを送信するインスタンスと同じインスタンスをCOM呼び出しでヒットできるようになります。

実行中のすべてのCOMサーバーを実行中のオブジェクトテーブルで列挙し、それらすべてのモニカを取得できますが、COMオブジェクト自体は、ウィンドウハンドル、スレッドID、プロセスID、またはそのようなものを取得するために使用できるメソッドを公開していません。 。

モニカまたはモニカの実際のバインディングCOMオブジェクトに基づいて、COMサーバーのプロセスIDが何であるかを把握する方法はありますか?

ありがとう!

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

visual-c++ - Running Object Table (ROT) を使用して 2 つの COM オブジェクト間で通信する方法は?

C++ と ATL で記述された 2 つの COM オブジェクトがあります。1 つのライブラリにあり、それらの IID と CLID を知っています。

2 つの単純な COM オブジェクト間でこの単純な通信を行う例が見つかりません。IMoniker の作成方法と ROT への追加方法 そして、別のプロセス/スレッドの他のCOMで、このオブジェクトのポインタを取得する方法は?

誰かが小さな例を提供できますか?

編集:詳細:

私はIEのアドオンを書いています。IE が別の目的でロードする、まったく関係のない 2 つの COM オブジェクトがあります。1 つは BHO (Browser Helper Obect)、もう 1 つは Asynchronous Pluggable Protocol (APP) です。ここでROT を介して通信できることがわかりました。

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

python - Python WMI モニカの問題

WMI を使用してログ「セキュリティ」を照会できません。他のログは正常に動作します。これが私が使用するものです:

空の結果が返され、セキュリティ ログに「監査に失敗しました」というレコードが作成されます。前述したように、他のすべてのログを照会できますが、この特定のログは照会できません。だから私は問題があると思います

c = wmi.GetObject(ここに問題があります)

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

wcf - VB6 から WCF を呼び出すときに maxReceivedMessageSize を増やすにはどうすればよいですか?

1) xml のブロックを返すための WCF セットアップ (具体的には、Exchange 2003 のカレンダーの内容です)。2 ) WSDL コントラクト ファイルのコンテンツを含むサービス モニカに基づいて構築されたオブジェクトを介して WCF にアクセスするコマンドを含む vb6 フォーム。

これは、渡される文字列が許容可能なサイズである場合にのみ正常に機能します。WCF 側で生成された xml 全体を返そうとすると、次のエラーが発生します。 ."

maxReceivedMessageSize を増やすためにバインド構成を WCF app-config に追加すると、これは効果がありません。おそらく、VB6 クライアントはこれを認識していないためです。(生成された WSDL コントラクトには、その xml に値さえ含まれていません)

*周りを読んで、クライアント側で同様の構成変更を行う必要があるという提案があります。だから私は VB6.EXE.CONFIG ファイルを作成し、バインディング構成の詳細をこれにコピーしました。次に、これを含めるようにモニカーを拡張しました: binding=WSHttpBinding_IExchange, bindingNamespace='Exchange', bindingConfiguration='ExchangeBinding'

ただし、サイズ クォータに関する同じエラー メッセージが引き続き表示されます。

上記のモニカーの binding または bindingNamespace 要素のつづりを間違えると、予想されるエラーが発生しますが、bindingConfiguration 要素のつづりを間違えても、この要素が無関係であるかのように、エラーは発生しません。

私はピースを持っているようですが、現時点では実用的なソリューションではありません。アイデアはありますか?

  • obj オブジェクトは、インターフェイス プロキシ型であると宣言されています。モニカは、アドレスとバインドの種類のみを含むように設定されます。wsHttpBinding のデフォルト設定のみを使用しているため、bindingConfiguration 値を指定する必要はありません。バインドの既定の設定をオーバーライドする必要がある場合は、file.exe.config という名前のアプリケーション構成ファイルを提供し、それをクライアントのプログラム ディレクトリに配置できます。
0 投票する
1 に答える
1439 参照

c# - 別のパーティションでのCOM+オブジェクトのアクティブ化

COM +ドメインパーティションを作成し、それをWindows 2008サーバーマシンにマップして、COM+アプリケーションをインポートしました。

次のC#コードを使用して、サーバー上の特定のパーティションからオブジェクトをリモートでアクティブ化してみました。

しかし、私はこの例外を受け取ります:

URL'partition:{41e90f3e-56c1-4633-81c3-6e8bac8bdd70} / new:MyObject'に接続するためのチャネルシンクを作成できません。適切なチャネルが登録されていない可能性があります。

そのような活性化をどのように達成できるか知っている人はいますか?

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

.net - ネットワーク サービス アセンブリからの COM 昇格

「ネットワーク サービス」資格情報で実行される既存のサービスに読み込まれる .NET プラグイン アセンブリを作成しています。

プラグインは、昇格されたマネージド COM サーバーを起動する必要があるいくつかの昇格された操作を実行する必要があります。

プラグイン コードと COM サーバー コードの両方にアクセスできます。

私の要件は、ユーザーにプロンプ​​トを表示することなく、COM サーバーを昇格して起動することです。サーバーは必要に応じて起動し、作業が完了したら終了する必要があります。

誰かがこれを達成する方法について私を助けることができれば、それは役に立ちます。ありがとう。

インストール時に必要な変更がある場合は、それを行うことができます。

PS: 「COM Elevation Moniker」について見つけましたが、私の要件に合わない UAC 昇格ダイアログを表示するのに役立つようです。

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

winapi - WPD MTPデータストリームを非同期で読み取る方法は?

私のサンプル アプリケーションはCOM IStream、関数からインスタンスを取得しますIPortableDeviceResources::GetStream()。この ISt​​ream オブジェクトを使用して、デバイス オブジェクトのコンテンツを非同期で読み取りたいと考えています。非同期モニカを使用してそれを行うにはどうすればよいですか?

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

delphi - COM 標高モニカー

ご挨拶!

プログラムに COM ActiveX モジュールを作成することについて疑問に思いました。これは、必要に応じて昇格された特権で呼び出されます。

Delphi XE5 と Windows 8.1 Pro x64 を使用してこれらすべてを行うには。

ActiveXライブラリ化、COMオブジェクト追加、テスト機能追加。[実行] > [ActiveX サーバー] > [登録] を使用して、システムに登録します。操作は成功しました。

私のライブラリにはGUIDがあります:

オブジェクト インターフェイス:

通常の方法で呼び出すと、次のように機能します。

その後、レジストリ LocalisedString、Elevation \ Enabled、Elevation \ IconReference に追加しました

次に、コードを呼び出します。

UAC から法を提供するように要求が送信されたので、[はい] をクリックします。

その後、「クラスが登録されていません」というエラー。

私は何を間違っていますか?結局のところ、ほぼすべてが把握されており、細かいディテールが残っている可能性があります。

PS

一般に、COM オブジェクトをシステムに登録せずに DLL ライブラリから呼び出して、昇格を要求することは可能ですか? そのため、LN の方がはるかに簡単で、他の何らかの問題を自動的に解決できます。

0 投票する
2 に答える
1375 参照

wcf - Excel から WCF サービスを呼び出すと、受信したメッセージ サイズでエラーが発生する

モニカー文字列を使用して、Excel VBA コードから WCF サービスを呼び出しています。ただし、サービスが応答として大きなデータを返すため、Excel でエラー メッセージが表示される

「受信メッセージの最大メッセージ サイズ クォータ (65534) を超えました。クォータを増やすには、適切なバインディング要素の MaxReceivedMessageSize プロパティを使用しました」

モニカ文字列は次のとおりです。

これを解決するために、以下に示すように、WCF サービスの web.config ファイルのサイズを増やしました。

このトピックに関するさまざまなフォーラムによると、上記のソリューションは機能するはずです。しかし、私の場合、Excelから呼び出された場合、これは機能しません。maxReceivedMessageSize を設定するために Excel 側から行う必要があることはありますか? はいの場合、VBAコードを使用してこれを行うにはどうすればよいですか?

追加情報:

Office 2010 (VBA を使用)、Windows 7 Prof、64 ビット OS を使用しています