問題タブ [activex-exe]
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.
vb6 - How do I let a non-admin user instantiate objects from a VB6 ActiveX Exe?
Question says it all really...
I have tried changing the "Allow non-admin users to run this program" setting on the property pages, and have also given the non-admin user in question what looks like the correct privileges in Component Services -> DCOM Config.
Is there anything else I can do ?
This is on Server2003 BTW.
Thanks
Matt
multithreading - vb6 標準 exe を activex exe に変換するためのベスト プラクティスは何ですか?
私は多くのサードパーティのライブラリとコントロールを備えたレガシーの大規模な vb6 エディターを持っていますが、最近、メインのエディター フォームから独立していくつかの他のフォームを実行できるように、マルチ スレッドにするようにセットアップする必要があります。基本的に、メイン ページからボタンをクリックして他のフォームを実行することを除いて、これらの他のフォームとメイン エディターの間に最小限の通信があります。
そのため、多くのグーグル検索から、現在のアプリをactivex exeとして設定し、global-multi-useに設定されたクラスを追加してこれを可能にすることにより、現在のアプリをマルチスレッドに変換する方法を見つけました。現在、デバッグ モードで編集とテストを行っているときに、終了時に多くの奇妙なクラッシュが発生することがあることがわかりました。
アプリがより不安定になっているように見えるのではないかと心配しているので、これを行うときに絶対に知っておくべきこと、つまり潜在的な問題などは何ですか? または、これを行うより良い方法はありますか?
アップデート:
アプリを強制的にハッキングして疑似マルチスレッド アプリにする代わりに、ここの善良な人々からのアドバイスを受けて、コンポーネントを標準の exe にリファクタリングし、アプリを標準の exe に戻してシェル経由で呼び出しました。美しく動作します:)
ありがとう
multithreading - マルチスレッドWindowshttpサーバーでスレッドセーフでないdllを実行する
VB6アプリケーションをIISによって呼び出されるCOMオブジェクトとしてカプセル化する必要があります。VB6アプリで使用されるdllの1つは、スレッドセーフではありません。
COMオブジェクトが呼び出されるたびに、それ自体の他のインスタンスと同じdllを共有しないようにするにはどうすればよいですか?
ActiveX exeが各インスタンスを異なるプロセスで実行することをどこかで読みましたが、それで十分でしょうか?
vb6 - SomeActiveX.Exe /regserver の実行に相当する API
ActiveX exe をプログラムで登録する必要がありますが、Shell(SomeActiveX.Exe /regserver) では不十分です。同等の API を知っている人はいますか?
com - アウト プロセス ActiveX の SideBySide のシミュレーション
クライアント側の比較的複雑なアプリケーション (ActiveX / .net / Delphi / C++ / COM) を適応させて、SxS を使用して、管理者以外の展開と製品の古いバージョンからの分離を実現しています。
プロセスで使用するすべてのライブラリを記述したマニフェスト ファイルを作成することで、.net ui、Delphi ui、およびプロセスで使用する COM サーバーなど、ほぼすべてのプロセス内コンポーネントでこの目標を達成できました。登録は必要ありません。いずれかのコンポーネントのクライアントで (ほぼ)。
そして、大部分がここに来ます: 現時点では、私たちのアプリケーションは (C++ の部分から) プロセス外 ActiveX サーバー (Delphi ActiveX EXE) を呼び出し、それ自体がプロセス外 ActiveX サーバーの別のセット (サードパーティのプラグイン、ここには、Delphi、C++、ActiveX EXE プロセス外であり、インターフェイスを実装している限り、すべてのものがあります)。
私たちが知っているように、SxS はアウト プロセス ActiveX サーバーをサポートしていません。また、これらのオブジェクトをメイン プロセスの proc com サーバーのように使用することはできません。これは、アプリケーションを大幅に書き直す必要があり、最悪の場合、サード パーティのツールやベンダーによって使用される公開 API を壊す必要があるためです。許せないブレイク。
別のプロセスで実行されている Internet Explorer ウィンドウから IHTMLDocument2 を抽出する方法について説明しているこの記事に出くわしました。このアプローチを思いついた理由は次のとおりです。
ActiveX をイン プロセス サーバーとして実行するセカンダリ サテライト アプリケーション/プロセスを作成します。次に、 LresultFromObjectとObjectFromLresultを使用して、ActiveX オブジェクトの参照をサテライト アプリケーションからメイン アプリケーション プロセスに転送します。サテライト アプリケーションには、SxS モードで実行できる独自のマニフェスト ファイルがあります。
この Delphi ActiveX EXE とサード パーティの AciveX EXE プラグインとの間の通信には、同じアプローチが取られます。
com リクエストを .net に変換することにより、.net リモーティングと .net com プロキシ クラスを使用して 2 つのプロセス間の通信チャネルを開くという上記の提案されたソリューションよりも、当面は好まない代替ソリューションがあります。 2 番目のプロセスで com に戻ります。
だからここに質問があります:
- このアプローチについてどう思いますか?
- 問題のより良い解決策はありますか?
activex-exe - 新しいバージョンの ActiveX exe コンポーネントには再登録が必要ですか?
ActiveX exe の新しいバージョンを展開する場合、再度登録する必要がありますか? exeはVB6で作成しました。
vb6 - 複数のアプリが 1 つの ActiveX EXE を介してインターネットにアクセスしている場合、ActiveX だけがファイアウォールのアクセス許可を必要としますか?
ファイアウォールの専門家向けの例を次に示します。
ActiveX EXE (VB6 で作成) があり、他のいくつかの VB6 アプリがインターネットにアクセスするためにそれを使用する場合、ActiveX EXE のみ、またはそれぞれに対して、ファイアウォールからアクセス許可を取得するだけで済みます (アクセスがブロックされている場合)。アプリ?
perl - TclとTclAppを使用してWin32用のCOMEXEを作成するにはどうすればよいですか?
TclAppを使用して、COMサーバーEXEとして使用できるWin32EXEを作成できると思います。
誰かがこれを試したことがありますか、それとも真剣に検討するのはあまりにも恐ろしい考えですか?
基本的に、PerlCtrlを使用してすでに実行できることをTclで実行したいと思います。
c# - ActiveX コントロールを使用した PowerPoint 印刷
Microsoft PowerPoint で使用するために、C# を使用して ActiveX コントロールを作成しました。コントロールのタイトルは「Test Viewer」です。コントロールを編集モードの PowerPoint に配置すると、タイトルがコントロールに表示されます。しかし、スライドを印刷すると、印刷出力に大きな「X」が表示されます。印刷プレビューは適切に見えます。コードで「PrintDocument」と「PrintPageEventHandler」を使用してみましたが、PowerPoint 編集モードでスライドを印刷するときにヒットしないようです。誰かがこれを達成する方法へのポインタを投げることができますか? 管理対象のデータを何らかの形式で伝達する必要がありますか?
-カートリー
delphi - Delphi で COM サーバーでもある EXE を作成する方法
標準の exe である Delphi (2007) アプリケーションがあり、それに COM インターフェイスを追加したいと考えています。複数の COM オブジェクトをエクスポートする COM dll が既にあり、これは完全に機能しています。ただし、dll から COM ロジック (つまり、「エクスポート」と「{$R *.TLB}」および関連する用途) を EXE の dpr ファイルに挿入しようとすると、すべてが完全にコンパイルされますが、regsvr32 を呼び出すと登録が拒否されます。私の名前.exe
また、完全に新しい VCLForms アプリケーションを作成し、IDE ウィザードを使用して AutomationObject を追加しようとしましたが、使用できる ActiveX コンポーネントがないため、Delphi はそれを望んでいないようです。
私が試みていることをすることさえ可能ですか?もしそうなら、誰かが何がうまくいかないのかについて何か考えを持っていますか?
ありがとう