1

ActiveX コントロールを作成して、IE にアプリケーションを埋め込もうとしています。xyz.dll があります。通常、このdllをコマンドプロンプト(バッチファイル)から登録すれば、埋め込みは成功します。しかし、cab ファイルの方法論を使用すると、dll の登録が行われているにもかかわらず、アプリケーションの最初のスナップショットのみが IE にロードされます (組み込みアプリケーションの実行に失敗します)。xyz.cab ファイルには、xyz.dll と xyz.inf が含まれています。xyz.inf は次のとおりです。

[version]
    signature="$CHICAGO$"
    AdvancedINF=2.0

[Add.Code]
         xyz.dll=xyz.dll

[Deployment]

    InstallScope=user|machine

[xyz.dll]
    file-win32-x86=thiscab
    clsid={HJI9D4D39-K9F5-489B-8032-CCHB1B189J10}
    FileVersion=1,0,0,0
    RegisterServer=yes
    RedirectToHKCU=yes
    HRESULT IEInstallScope(LPDWORD pwdScope);

私はmakecab.exeを使用してcabファイルを作成しており、signtool.exeとmakecertテクニックを使用してcabファイルにも署名しています。最終的にhtmlからの抜粋は次のとおりです。

...
CLASSID="clsid:HJI9D4D39-K9F5-489B-8032-CCHB1B189J10"
    CODEBASE="C:\xyz\13\plugins\ie\xyz.cab#Version="1,0,0,0"
...

なぜ私がこの問題に直面しているのかわかりません。理由は、infファイル内で何かを間違えているか、正確な使用法がわからないか、"HRESULT IEInstallScope(LPDWORD pwdScope); "dllに関連付けられているためである可能性があります???? 私を助けてください!!!!!!

編集:::これでうまくいきましたが、なぜregisterserver = yesがactivexを完全に埋め込めないのかまだわかりません::新しいinfファイルは次のとおりです:

[version]
    signature="$CHICAGO$"
    AdvancedINF=2.0

[Add.Code]
         xyz.dll=xyz.dll


[Deployment]

    InstallScope=user|machine
        [Setup Hooks]
xcxc=xcxc
xcxc1=xcxc1
[xyz.dll]
    file-win32-x86=thiscab
    clsid={HJI9D4D39-K9F5-489B-8032-CCHB1B189J10}
    FileVersion=13,0,0,0
    RegisterServer=yes
    RedirectToHKCU=yes 
    HRESULT IEInstallScope(LPDWORD pwdScope);
[regDll]
hook=xcxc
[xcxc]
run=C:\Windows\System32\regsvr32.exe "C:\xyz\13\plugins\ie\xyz.dll"

[abcDll]
hook=xcxc1
[xcxc1]
run=C:\Windows\syswow64\regsvr32.exe /u /s "C:\xyz\13\plugins\ie\xyz.dll"
4

0 に答える 0