progIdではなくCLSIDで実行しようとしましたか?私が間違っていない場合、CLSIDはCA8A9780-280D-11CF-A24D-444553540000です。
「死んでいる」ということを明確にすることはできますか?
更新
var checkAdobeReaderAvailability = function (displayMessageDelegate) {
var dynamicObject = document.createElement("object");
dynamicObject.onreadystatechange = function (x) {
if (dynamicObject.readyState === 4) {
if (displayMessageDelegate !== undefined && typeof displayMessageDelegate === 'function') {
displayMessageDelegate();
}
}
}
dynamicObject.classid = 'CLSID:CA8A9780-280D-11CF-A24D-444553540000';
document.getElementById('host').appendChild(dynamicObject)
}
var checkAdobeReaderAvailabilityWithProgId = function (displayMessageDelegate) {
var ax = new ActiveXObject('AcroPDF.PDF');
displayMessageDelegate(ax);
}
var onload = function() {
checkAdobeReaderAvailability(function() { alert('Done!'); });
checkAdobeReaderAvailabilityWithProgId(function() { alert('Done!'); });
}
あなたがCLSIDによって何を意味するかわかりません。これをもっと明確にしないと申し訳ありません。私は新しいActiveXObject( 'AcroPDF.PDF')を呼び出してAdobe Readerを検出するためにJavascriptを使用しています。それは私のために働いていましたが、Readerの最新のアップデート後ではありませんでした。私が「死んでいる」とは、私にActiveXObjectのインジケータを与える警告機能を持っているということですが、警告ではオブジェクトの代わりにnullが返されるようになりました。 – Nebby
ActiveXを手動でインスタンス化するには、progIdを使用して、使用したものを1つ使用する方法が一般的です。 Adobe PDF XのProgIdはAcroPDF.PDFです。しかし、さまざまな要因(セキュリティ、レジストリなど)で何かが間違っている可能性があるので、activexを呼び出すための他のオプションを選択することもできます。ページにOBJECT DOM要素(非表示)を作成し、属性classidを送信したGUIDに設定します。試してみるためにコードスニペットが必要な場合はお知らせください。 –
私は参照してください。あなたがGUIDを使って確認できるかどうかはわかりませんでした。 1つのPCから別のPCにGUIDを変えることはできますか? IEのバージョン(IE7からIE8、IE9など)から取得することができます。しかし、私はコードスニペットを取得したいと思います。それは非常に役に立ちます。ありがとうございました。 – Nebby