检查客户端计算机上是否安装了Adobe Reader

时间:2009-11-11 13:53:24

标签: c# asp.net adobe-reader

目前我正在开发一个网页,告诉用户客户机上的某些配置。除此之外,还需要检测客户端计算机上是否安装了Adobe Reader。我正在使用ASP.NET / C#。

我看了以下网址的答案 “Check Adobe Reader is installed (C#)?”但代码查看服务器注册表是否安装了IIS,而不是运行浏览器的客户端计算机。

是否可以检测客户端计算机上是否安装了Adobe Reader,而不是托管该网站的服务器?

2 个答案:

答案 0 :(得分:3)

请检查下面的脚本,它在我的IE,FireFox和Chrome中运行良好

<html>
<body>
<script type="text/javascript">
var found = false;
var info = '';

try 
{    
    acrobat4 = new ActiveXObject('PDF.PdfCtrl.1');    
    if (acrobat4) 
    {      
        found = true;      
        info = 'v. 4.0';    
    }  
}  
catch (e) 
{
    //???
}

if (!found)
{
    try 
    {
        acrobat7 = new ActiveXObject('AcroPDF.PDF.1');
        if (acrobat7) 
        {
            found = true;
            info = 'v. 7+';
        }
    } 
    catch (e) 
    {
        //???
    }

    if (!found && navigator.plugins && navigator.plugins.length>0)
    {
        for (var i = 0; i<navigator.plugins.length; i++) 
        {                           
            if (navigator.plugins[i].name.indexOf('Adobe Acrobat') > -1)
            {
                found = true; 
                info = navigator.plugins[i].description + ' (' + navigator.plugins[i].filename + ')';
                break;
            }
        }
    }
}

document.write("Acrobat Reader Installed : " + found);
document.write("<br />");
if (found) document.write("Info : " + info);
</script>
</body>
</html>

希望这有帮助,尊重

答案 1 :(得分:1)

我使用了这个脚本并在ready函数上调用它: 注意:我在这里使用警报只是为了知道如何使用它。

 <script type="text/javascript">
     $(document).ready(function () {
         alert(getAcrobatInfo().browser);
         alert(getAcrobatInfo().acrobat === "installed");
         alert(getAcrobatInfo().acrobatVersion);
     });


     var getAcrobatInfo = function () {

         var getBrowserName = function () {
             return '<%=Session["browser"].ToString()%>';
         };

         var getActiveXObject = function (name) {
             try { return new ActiveXObject(name); } catch (e) { }
         };

         var getNavigatorPlugin = function (name) {
             for (key in navigator.plugins) {
                 var plugin = navigator.plugins[key];
                 if (plugin.name == name) return plugin;
             }
         };

         var getPDFPlugin = function () {
             return this.plugin = this.plugin || function () {
                 if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                     //
                     // load the activeX control
                     // AcroPDF.PDF is used by version 7 and later
                     // PDF.PdfCtrl is used by version 6 and earlier
                     return getActiveXObject('AcroPDF.PDF') || getActiveXObject('PDF.PdfCtrl');
                 }
                 else {
                     return  getNavigatorPlugin('Adobe Acrobat') || getNavigatorPlugin('Chrome PDF Viewer') || getNavigatorPlugin('WebKit built-in PDF') || getWebKitPlugin();
                 }
             }();
         };
         var getWebKitPlugin = function () {
             for (var key in navigator.plugins) {
                 var plugin = navigator.plugins[key];
                 if (plugin.name && plugin.name.substring(0, 6) == "WebKit" && (plugin.name.indexOf("pdf") != -1 || plugin.name.indexOf("PDF") != -1)) return plugin;
             }
         };
         var isAcrobatInstalled = function () {
             return !!getPDFPlugin();
         };
         var getAcrobatVersion = function () {
             try {
                 var plugin = getPDFPlugin();

                 if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                     var versions = plugin.GetVersions().split(',');
                     var latest = versions[0].split('=');
                     return parseFloat(latest[1]);

                 }
                 if (plugin.version) return parseInt(plugin.version);
                 return plugin.name


             }
             catch (e) {
                 return null;
             }
         }

         // The returned object
         return {
             browser: getBrowserName(),
             acrobat: isAcrobatInstalled() ? 'installed' : false,
             acrobatVersion: getAcrobatVersion()
         };
     };
</script>

还要添加此代码:

  public void detectBrowser()
     { //Set the Browser session variable
       System.Web.HttpBrowserCapabilities browser = Request.Browser;
       Session["Browser"] = browser.Browser;
    }

希望它有所帮助。