javascript如何创建桌面快捷方式

哪位高手赐教一下在程序中用javascript如何创建一个应用系统[网站]的快捷方式到桌面??并且可以指定创建的快捷方式的图标icon,最重要的是可以兼容几款非IE主流浏览器如谷歌、火狐、Opera等[现在网上可以搜到的创建快捷方式的方法都是基于IE内核的],谢谢!

一般来说直接用Javascript创建的话只支持IE,代码如下:

functionCreateShortcut() { 
    try{ 
        varfso = newActiveXObject("Scripting.FileSystemObject"); 
        varshell = newActiveXObject("WScript.Shell"); 
        vartagFolder = shell.SpecialFolders("Desktop"); 
        if(!fso.FolderExists(tagFolder )) { 
            fso.CreateFolder(tagFolder); 
        } 
        if(!fso.FileExists(tagFolder + "\\乐猪软件.lnk")) { 
            varWshSysEnv = shell.Environment("Process"); 
            iLocal = (WshSysEnv.Item("SystemRoot") +"\\1.ico"); //下载到C:\windows\1.ico 
            iRemote = ("/Images/2.ico"); //先下载图标文件,再用自定义图标把首页的图标地址替换 
            varxPost = newActiveXObject("Microsoft.XMLHTTP"); 
            xPost.Open("GET", iRemote, 0); 
            xPost.Send(); 
            varsGet = newActiveXObject("ADODB.Stream"); 
            sGet.Mode = 3; 
            sGet.Type = 1; 
            sGet.Open(); 
            sGet.Write(xPost.ResponseBody ); 
            sGet.SaveToFile( iLocal,2); 
            varlink = shell.CreateShortcut(tagFolder + "\\编程入门管理系统.lnk"); 
            link.Description = "打开基本软件的快捷方式"; 
            link.Hotkey = "Ctrl+Alt+e"; 
            link.TargetPath = "http://www.lezhu99.com/"; 
            link.IconLocation=iLocal; 
            link.WindowStyle = 3; 
            link.WorkingDirectory = "c:\\blah"; 
            link.Save(); 
            alert("恭喜!快捷方式创建成功!"); 
        } 
    } 
    catch(ex){ 
        alert("快捷方式创建失败,可能浏览器不支持!"); 
    } 
}

为了支持所有浏览器,我们可以用动态语言来做。

1.php代码:

<?php 
$Shortcut = "[InternetShortcut] 
URL=http://www.0356sh.com 
IconFile=http://www.0356sh.com/favicon.ico 
IconIndex=0 
HotKey=1613 
IDList= 
[{000214A0-0000-0000-C000-000000000046}] 
Prop3=19,2"; 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=晋城生活服务.url"); 
echo $Shortcut; 
?>

HTML中的代码:

<a href="1.php" target="_blank">创建桌面快捷方式</a>

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-14

网上常见的都是调用

WshShell.CreateShortcut

但是只有ie支持ActiveXObject对象

所以要想实现只能跑后台 然后传回一个快捷方式

类似下载文件一样

给你找了段php的例子

<?php 
$Shortcut = "[InternetShortcut] 
URL=xxxx
IconFile=xxx.ico 
IconIndex=0 
HotKey=1613 
IDList= 
[{000214A0-0000-0000-C000-000000000046}] 
Prop3=19,2"; 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=xxxx.url"); 
echo $Shortcut; 
?>

追问

不懂,我们没用php、我也不会,我们用的play框架,开发的算是纯java项目,连jsp都没用,你上边的代码可以通用吗,你代码中的$Shortcut是什么意思,自定义变量的标识还是什么。。。

追答

那就用java 返回一个 link 文件 给用户下载

public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
        // 下载本地文件
        String fileName = "Operator.doc".toString(); // 文件的默认保存名
        // 读到流中
        InputStream inStream = new FileInputStream("c:/Operator.link");// 文件的存放路径
        // 设置输出的格式
        response.reset();
        response.setContentType("bin");
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        // 循环取出流中的数据
        byte[] b = new byte[100];
        int len;
        try {
            while ((len = inStream.read(b)) > 0)
                response.getOutputStream().write(b, 0, len);
            inStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

本回答被提问者采纳
第2个回答  2013-11-26
javascript是客户端运行的,安全限制很严格。一般情况下是不可能读写客户本地数据的。想要一个全面的解决方案,更不可能了。如果能做到,就是“恶意代码”了。
第3个回答  2013-11-26
javascript如何创建桌面快捷方式?
你想要在什么浏览器里面运行js就打开那种浏览器去控制台输入不行么追问

说得真容易,方法怎么写????我要是会就不会问了。。。。

相似回答