問題タブ [tstcon32]

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 に答える
219 参照

debugging - ActiveX コントロールからのデバッグ出力

私は ActiveX コントロールを開発しています。他のコントロールと同じように、デバッグ出力を tstcon32 のコンソール領域に出力したいと考えています。それを行っているシステムコールは何ですか?

標準出力はそうではないようです

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

winforms - 1つのホストコンテナではActiveXコントロールが空白になりますが、他のコンテナでは空白になりません

レガシーアプリケーションのプラグインを作成するには、ActiveXを使用する必要があります。いくつかの関連するスタンドアロン製品のコードベースを共有できるように、C#を使用しています。

SDKのテストコンテナ(TstCon32.exe)でコントロールをホストすると、すべてが正常に機能します。問題は、最初にコントロールをクリックしたときにターゲットアプリケーションにロードしようとすると、クリックしたアイテム(テキストボックスまたはデータグリッドセル)を除くすべてがコントロールグレーで塗りつぶされ、背景色を変更した場合です。他の何かへのコントロールは、背景が私が指定したのと同じ色のままですが、すべてのコントロールはまだコントロールグレーで覆われています(コンテナアプリから?)。追加のコントロールをクリックするとペイントされ、コントロールのサイズを変更するとすべてが再ペイントされます。最初のブランキングの後、次にコピーが作成されるまで、コントロールは正常に機能します。

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

.net - 親によって閉じられたときにActiveX(COM)コントロールをクリーンアップするための適切な方法は何ですか?

ActiveX用にラップしたときに.netコントロールが適切にクリーンアップされないという問題があります。

デフォルトの動作では、SDKのテストコンテナアプリ(TstCon32.exe)を閉じようとすると、GUIなしのプロセスとして実行されたままになります。

私が最初にグーグルで見つけた回避策は、WndProcをオーバーライドしてEnvironment.Exit(0)手動で呼び出すことでした。これにより、TstCon32.exeが完全にシャットダウンしました。ただし、コントロールをホストする必要があるアプリケーションが壊れています。

アプリはMDIであり、コントロールを含むページが閉じられたときにWM_DESTROYが送信されます。その時点で、Environment.Exit(0)呼び出しはアプリ全体を吹き飛ばします。別の方法として試しApplication.Exit()ましたが、TstCon32はまだ見えないまま実行されています。

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

c++ - ole32.dll への呼び出しを自分のプロキシ DLL にリダイレクトするにはどうすればよいですか?

開始しているプロセスでCoCreateInstanceへのすべての呼び出しを検出しようとしています(理想的には、子プロセスでも呼び出しを検出できます)。

これを実現するために、Windows 7 で Microsoft Visual Studio 2008 を使用して、標準ole32.dllライブラリ内の 1 つを除くすべての呼び出しを転送するプロキシ DLL を作成します (例: Intercepted: Windows Hacking via DLL Redirectionなど) 。結果の DLL は問題ないように見えますが、既存のプログラム (標準のActiveX コントロール テスト コンテナー (tstcon32.exe)をテスト アプリケーションとして使用しています) にプロキシ DLL を取得させることができません。私が何をしても、プログラムはProcess ExplorerC:\Windows\SysWow64\ole32.dllに従って常にピックアップしているようです。これまでにいくつかのことを試しました:

  1. プロキシ DLL を含むディレクトリを先頭に追加しPATH、プログラムを呼び出します。効果はないようでした。
  2. プロキシ DLL を、呼び出されたプログラムと同じディレクトリにコピーします。運がない。
  3. Dynamic-Link Library Redirection の.local記事で説明されているように、呼び出されたプログラムと同じディレクトリにファイルを作成し、プロキシ DLL を同じディレクトリに配置しますが、どちらも機能しませんでした。しかし、その後、これが最近の Windows バージョンでは機能しなくなったことを読みました。さらに、はレジストリ設定によると「既知の DLL」であるため、ベースのリダイレクトはおそらく機能しません。ole32.dllHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs.local
  4. マニフェストを使用したDLL リダイレクトの質問などで説明されているように、マニフェスト ベースのリダイレクトを使用しますが、それも効果がないようです。ただし、このアプローチは自明ではないように思われるため、何か間違ったことをした可能性があります。

ole32.dllスタブ DLL の使用など、呼び出しを標準 DLL にリダイレクトした経験のある人はいますか? どのようにしてアプリケーションにスタブ DLL を取得させましたか?

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

java - Java => ActiveX コンポーネント = 相互作用のない Swing

Java Bean コンポーネントを作成してから、このチュートリアルのように ActiveX dll に生成します。

Swingパネルです

夫婦JButton

しかし、tstcon32.exe でテストすると、実際にはボタン (JButton) を押すことができません。絵のようです。

どうしたの?

ありがとうございました

upd: AWT (java.awt.Panel、java.awt.Button) で試しました - 同じ話です。見えますが、ボタンを押すことはできません

ここに画像の説明を入力

0 投票する
3 に答える
2898 参照

c# - C# で ActiveX コントロールを作成するには?

C# で機能する ActiveX コントロールを作成できません。成功せずにそうするために、チュートリアルに従ってみました。

このコードを含むサンプル クラス ライブラリ プロジェクトを作成します。

次に、次の手順を実行しました。

  1. プロパティ => アプリケーション => アセンブリ情報 => アセンブリを COM 可視にする
  2. ビルド => COM 相互運用に登録する TRUE (チェック済み)
  3. アセンブリの強力な名前を作成 (署名)
  4. プロジェクトをビルドする
  5. regasm MyDll.dll /tlb /codebase

  6. Prisoner.PrisonerControltstcon32 で見えない=(

私のOSはWinXP x86です。


UPD: VBScript から動作します:

しかし、tstcon32 には表示されません。

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

c# - それを使用する .NET アプリケーションのプロセスを使用して、ActiveX コントロールをデバッグする方法は?

VS2008 を使用してネイティブ C++ で ActiveX コントロール (OCX) を作成しました。

Microsoft ActiveX コントロール テスト コンテナー (TstCon32.exe) のスレッドと、コントロールを参照する独自のネイティブ cpp アプリケーションにアタッチすると、正しくデバッグできます。

MyCtrlNameLib.dllただし、およびでコントロールを参照する .NET winform アプリケーションのスレッドにアタッチしてデバッグすることはできませんAxMyCtrlNameLib.dll。ブレークポイントに次のメッセージが表示されます。

ブレークポイントは現在ヒットしません。このドキュメントのシンボルは読み込まれていません。メッセージ

.NET Winform アプリケーションによって参照される ActiveX コントロールをデバッグする方法はあるのだろうか。

問題は、.NET アプリケーションが MyCtrlName.ocx をロードしていないため、MyCtrlName.pdb が追加されていないことだと思います。代わりに InterOp.MyCtrlNameLib.dll と AxInterOp.MyCtrlNameLib.dll をロードします。