【问题标题】:Create .txt file and then launch .exe file from Chrome or FireFox创建 .txt 文件,然后从 Chrome 或 FireFox 启动 .exe 文件
【发布时间】:2017-02-27 16:00:25
【问题描述】:

由于 Chrome/Firefox 不使用 Activex 对象,甚至由于安全问题而不允许使用本地配置文件(例如 AppData\Roaming)进行访问。但在我的一个客户请求中,我需要创建一个 .txt 文件,然后从上述目录启动 .exe。 2014 年之前的 Chrome 支持 NPAPI,它实际上与客户端配合良好,但在 2014 年,他们也停止支持 NPAPI,并且在 Chrome 上也标记为 Phased。所以我需要真正需要的最新技术来创建一个文本文件,然后从漫游文件夹启动 exe 文件。

是否有任何选项或客户端 api 来执行此操作?

更新

我在 ActiveXObject(旧方法)中关注 sn-p,现在我想将其转换为最新技术,以便非 IE 浏览器也可以使用它。

function createLoginFile(){
    var isIE = /*@cc_on!@*/false || !!document.documentMode;

    if(isIE == true)
    {   var wsShell = new ActiveXObject("wscript.shell");
        var roamingAppData = wsShell.ExpandEnvironmentStrings("%appdata%");

        var fileObj = new ActiveXObject("Scripting.FileSystemObject");
        var folderObj = new ActiveXObject("Scripting.FileSystemObject");

        var folderLoc = roamingAppData+"\\Navigator";
        var fileLoc = folderLoc + "\\NavigatorLogin.txt";
        if(fileObj.FileExists(fileLoc)){
        //empty file
        var emptyFile = fileObj.OpenTextFile(fileLoc, 2, false);
        emptyFile.close();
        //write to file
        var openFile = fileObj.OpenTextFile(fileLoc, 2, false);
        openFile.WriteLine("Hello World!"); 
        openFile.close();   
        loadExe(folderLoc)
    }
    else{
            var newfile = fileObj.CreateTextFile(fileLoc,false);
            //write to file
            newfile.WriteLine("Hello World");
            openFile.close();   
            loadExe(folderLoc)
    }       

    }
}

function loadExe(folderLoc){
        var oShell = new ActiveXObject("Shell.Application");
        var filePath = folderLoc+"\\Navigator.exe";
        oShell.ShellExecute(filePath,"","","open","1");
        }

【问题讨论】:

  • 请删除重复标志,因为 NPAPI 允许访问本地配置文件,Chrome 只是停止支持 NPAPI,现在他们允许使用,developer.chrome.com/apps/app_storage。 . .所以请删除重复的标志
  • 您实际上无法删除标志,但模组会看到您的评论。您是否关心该解决方案是否适用于两种浏览器,还是只有 1 种足够好?
  • 我需要在两种浏览器或至少在 Chrome 中使用它。

标签: javascript google-chrome firefox


【解决方案1】:

建立一个自定义链接,比如

tencent://Message/?*****&websiteName=qzone.qq.com&Menu=yes

当你点击链接时,会启动一个QQ客户端

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多