問題タブ [shim]
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.
jquery - jQuery: IE6 のウィンドウ コントロールの問題
選択ボックスを含む Web ページがあります。jQuery ダイアログを開くと、選択ボックスの後ろに部分的に表示されます。
この問題にどのようにアプローチすればよいですか?選択ボックスを非表示にする必要がありますか、それとも jQuery は何らかの「シム」ソリューションを提供しますか? (私はグーグルで検索しましたが、何も見つかりませんでした)
ここにいくつかのコードがあります:
javascript - iframe shimming または ie6 (およびそれ以下) select z-index バグ
うーん、誰かがこの問題に遭遇したかどうかは
わかりませんが、簡単な説明は IE6 にあります。任意の<select>
オブジェクトが他のアイテム、さらには div の上に表示されます...つまり、上部にあるはずの div を表示する派手な JavaScript 効果がある場合すべて (例: ライトボックス、マルチボックスなど) の特定の要素の onclick で、その div が<select>
あなたの div get の下にあるかのように表示される<select>
[この場合、最大および最小の z-index は機能しません]
私はグーグルを試してみて、iframe shim ソリューションを見つけましたが、
かなりクリーンな代替案が必要でした。iframe を使用する方法は約 130 MB の RAM を使用するため、貧しい人々 のマシンの速度が低下する可能性があります。
javascript - UL タグで IFrame Shim を使用したことがありますか?
UL 要素と LI 要素を使用してメイン メニューからドロップダウンするメニュー構造があります。私が(もちろん)抱えている問題は、z-indexにもかかわらずメニューがSELECT要素の後ろに落ちるIE6にあります。メニュー項目である LI 要素を含む UL に IFram shim を追加しようとしました。問題は、シムの z-index が UL 要素よりも小さいという事実にもかかわらず、シムが UL の後ろではなく上にあることです。
excel-2007 - オートメーション アドインのユーザー定義関数の動作が異なる Excel 2007
C# .NET でオートメーション アドインを作成し、そのための shim dll を用意しました。shim dll には、.NET アセンブリ内の適切なメソッドを呼び出すすべてのユーザー定義メソッドが含まれています。
私が直面している問題は、Excel 2007 に関連しています。
Excel 2003 では、 1. ワークシートに新しい図形を追加します。 2. 挿入 >> 関数 >> SUM。[関数の引数] ダイアログが表示されます 3. セルではなく、新しく挿入された図形をクリックします 注: 何も起こらず、引数ボックスにセルの値が自動的に入力されることはありません
Excel 2007 では、 1. 新しい図形を挿入します。 2. [数式] リボン タブ >> [関数の挿入] >> [SUM] を選択します。関数の引数ダイアログが表示されます 3. 新しく挿入された図形をクリックします 「入力した数式にエラーが含まれています」というエラー ダイアログが表示されることに注意してください。
このダイアログは、定義済み関数 (SUM) に対して表示されます。SUM の代わりにリストから関数を選択すると、エラー ダイアログは表示されず、[関数の引数] ダイアログは消えます。次に、セルにエラー スマートタグが表示されます。
関数ごとに SHIM dll に入れる必要があるものはありますか? このエラーダイアログを表示する属性または何かのように。または、引数がエラーを生成したことを伝えるためにメソッドによって返される特別な値かもしれません。
COM shim で定義されている関数は次のようになります。
windows - CoGetClassObjectやCoCreateInstanceの呼び出しをフックまたはインターセプトする方法はありますか?
COM CoCreateInstanceExおよび/またはCoGetClassObject関数をインターセプトして、単体テストでクラスをテストシムに置き換えたいのですが。これは、単一のCLSIDに対してのみ行われます。他のすべては変更なしで通過できます。恐ろしい、邪悪なハックなしでこれを行う方法はありますか?
windows - Win32: マニフェスト アプリのテストと展開に関する提案
Windows Vista 以降、Microsoft は互換性シムのクラスを追加しました。これにより、アプリケーションが管理ファイルとレジストリへのアクセス権を持っていることを前提として、引き続き機能することができます。
つまり、Windows XPで失敗したアプリケーションは、 Windows Vistaで実行されます。
これらの OS 提供のバグ修正は、アプリケーション マニフェストにセクションを追加し、アプリケーションを実行する必要があることを宣言することで無効にすることができasInvoker
ます。
理想的には、開発者はアプリケーションをテストして、(不必要に) 管理者特権を必要としないことを確認します。これをテストするには、asInvokerとしてマニフェストする必要があります。
しかし、結局のところ、 asInvoker としてマニフェストされた顧客にアプリケーションをリリースするつもりはありません。何かを見逃したとしても、ユーザーに影響を与えたくありません。Microsoft のオペレーティング システムに間違いを修正してもらいたいです。このソリューションの問題は次のとおりです。
- リリース前にマニフェストを変更する必要があります
- Windows Vista で動作するだけなので、見逃したことについては決して知りません。
同様の難問が、Windows 7 のsupportedOSのマニファイスト全体で発生します。設計およびテストされた Windows のバージョンを示すマニフェストをアプリケーションに追加できます。
サポートされている OS 項目の場合、オペレーティング システムは、どの OS 向けに設計されているかを事前に認識しています。これにより、Windows 7 をサポートしていない場合、アプリケーションは Windows Vista のコンテキストに配置されます。
(ソース: msdn.com )
このアクションは、一部の互換モードでアプリケーションを実行するのと似ています。たとえば、次のようになります。
- Windows Server 2008 (サービス パック 1)
- Windows Vista (サービス パック 2)
- Windows Vista (サービス パック 1)
- Windows ビスタ
- Windows Server 2003 (サービス パック 1)
- Windows XP (サービス パック 2)
- ウィンドウズ2000
- Windows NT 4.0 (サービス パック 5)
- ウィンドウズ 98 / ウィンドウズ ミー
- Windows95
ここで、互換性シムの schmorgasboard が適用され、Windows は文書化されていない古い動作をエミュレートして、文書化されていない動作に依存しているときにアプリがクラッシュするのを防ぎます。
Windows 7 がWindows Vistaコンテキストで実行されるアプリケーションに提供する互換性シムの例:
- RPC は、OS スレッド プールではなく、古いプライベート スレッド プールを使用します。
- プライマリ ビデオ デスクトップ ディスプレイ バッファをロックできます。
- クリッピング ウィンドウを指定せずに、プライマリ デスクトップ ビデオ バッファにブリットできます。
- GetOverlappedResult 競合状態に対して脆弱になります (それに依存している場合)
- Program Compatibilty Assistant (PCA) 緩和策を引き続き取得します。
また、 Windows 7でアプリケーションを適切にテストするには、 supportsOSマニフェスト エントリを追加する必要があります。しかし、繰り返しになりますが、これらのシム (PCA など) の利点を失いたくないので、そのフラグを付けてアプリケーションを出荷するつもりはありません。また、アプリに問題があり、それがVistaコンテキストで実行されていたために修正された場合: アプリは機能しているだけなので、顧客からそれについて知ることはありません。
考え?ガイダンス?ベストプラクティス?
terminology - シムとは?
シムの定義は何ですか?
visual-studio - アプリケーションとそのSHIMをMSIパッケージにエクスポートする方法...?
アプリケーション(.exe)とそのSDBファイルがあり、インストーラーとして展開するためにMSIパッケージにバンドルしたいと思います。どうすればmsiパッケージを作成できますか?ツールはありますか?Visual Studioで実行できますか?