首页 > flash&flex > how to launch a exe by swf

how to launch a exe by swf

2009年5月8日 admin 发表评论 阅读评论

这个问题几乎是每个flasher在学习阶段都会遇到,并试图实现的。但是不太靠谱。今天一个学弟又问了这个问题,原因是他的毕设中有这么个需求。我给总结了几种方法,希望对看博客的你有所帮助。

1.传统的fscommand,fscommand(”exec”,..),这种方法要把exe放到同目录的fscommand下面,可以传参,可以 启动bat,但是无法交互,可靠性不高。

2.中转法,有个localserver的角色,启动swf,swf可以和localserver通信,localserver来启动exe,做消息中转。如果真的非得把若干个不相干的东西拼成一个,这种方法可以考虑。扯远点,swf的表现层开发远高于MFC等,所以很多软件公司的精美界面其实就是flash的,比如好几款网游的登录界面,用C++或者别的啥做个壳/容器,也可以看做为中转法。

我和学弟扯到这里,他忽然告诉我,他的swf是在页面中的,是html中的,怎么启动客户机exe。我一头汗,浏览器启动exe…但是,也不是不可能。考虑到是毕设,就让他用delphi,c#或者别的啥拖个webbrowser控件,做个定制的浏览器,还是中转的思路,蒙混过关。但是良心告诉我,不能这么忽悠他。于是有了第三种方法

3.伪协议,说着挺忽悠,其实很简单,自定个协议比如aseye,在注册表中关联到需启动的exe,然后用flsh中getURL(as2)/navigateToURL(as3)它即可比如navigateToURL(new URLRequest(”aseye://***”));原理可以参考迅雷,flashget或者emule,呵呵,具体注册表怎么写? 如果你装了emule。在regedit中ctrl+f  ed2k,看看怎么写的,导出来改改即可了

话说回来我的几种方法都有点不正统的味道,Adobe应该有包容天下的心态才是王者风范,这点该学学python,直接拿c++的东西,不过好在有了alchemy,可以期待,否则连AIR都启动不了别的exe,太玩具了

Popularity: 45% [?]

分类: flash&flex 标签:
  1. 2009年6月17日05:00 | #1

    I think I will try to recommend this post to my friends and family, cuz it’s really helpful.

  2. 2010年9月25日02:11 | #2

    Connie FAIL :P

  3. 2010年9月25日20:40 | #3

    I have to hear just what Marguerite has to say about this :P

    Sincere Regards
    Mohamed

  1. 本文目前尚无任何 trackbacks 和 pingbacks.