启动时运行的“浏览器外”Web应用程序?

时间:2009-08-09 15:32:23

标签: silverlight web-applications

我已经熟悉了“浏览器外”Web应用程序的新概念,最近支持Silverlight,JavaFX,Adobe AIR等。

最近通过podcast收听关于这个主题的Scott Hanselman,我已经意识到这些新架构背后的目的之一是允许“桌面应用程序感觉”。此外,我了解其中一些(或全部)允许对资源沙箱进行一些脱机访问。这听起来好像这些框架可以替代“真正的”桌面应用程序,只要应用程序不需要弄乱用户的机器(即访问外围设备,某些文件IO等)。

我有一个非常具体的问题。我的应用程序需要在启动时运行。是否可以使用这样的框架而不需要用户下载和运行某个可执行文件?

例如,我总是可以指示用户下载一个将.lnk文件放在启动目录中的小EXE,但我想避免使用这样的补丁。

总结一下:是否有可能将浏览器外的Web应用程序设置为在启动时运行而无需下载文件?

进一步澄清,这个问题不是来自“邪恶”的地方,而是来自于尝试根据我的具体要求决定“浏览器外”框架是否确实是桌面应用程序的正确替代方案。 / p>

4 个答案:

答案 0 :(得分:2)

BkMark示例here显示了如何使用Adobe Air启动应用程序。所以,是的,这是可能的。

答案 1 :(得分:0)

假设您正在为Windows构建,可以通过多种方式在启动时启动可执行文件。

对于用户会话启动,您可以通过将lnk文件放在相应的文件夹中或使用注册表项来实现此目的。对于操作系统启动,您可以使用注册表项来实现此目的。有几种排列:

  • 在启动时运行应用程序一次(不允许使用UI)
  • 每次启动运行应用程序(不允许使用UI)
  • 根据注册表中设置的策略启动每次启动服务
  • 在用户会话启动时运行一次应用程序
  • 每个用户会话运行应用程序

由于浏览器应用程序没有UI我希望你的意思是运行应用程序每个用户会话,在这种情况下,你也可以将LNK文件放在用户的启动文件夹中。

我刚刚为SL4 OOB应用程序创建了一个快捷方式,这就是快捷方式的目标:

"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 2635882436.localhost

搜索我的磁盘后发现位置2635882436.localhost是一个文件夹。

C:\Users\<mylogin>\AppData\LocalLow\Microsoft\Silverlight\OutOfBrowser\2635882436.localhost

我更怀疑任何类型的OOB应用程序都可以在Startup文件夹中放置一个快捷方式,除非您以某种方式获得完全信任。

答案 2 :(得分:0)

所以,这是交易:Web应用程序通常会有一个安全上下文,默认情况下无法访问文件系统(临时文件之外),访问注册表等等。

正如你所说,有一种方法是让用户运行某些东西或对其进行配置,以便在启动时执行lnk。

另一种方式,我认为,更符合您的需求,用户可以自己运行程序,单击应用程序中的某个按钮,然后进行配置。

我知道使用Java可以做到这一点,但是用户必须允许完全访问他们的系统,因为您的应用需要更改系统配置。然后你可以配置它(通过在启动文件夹中写一个lnk到你的WebStart JNLP)

答案 3 :(得分:0)

对于Internet Exploder,Javascript应用write access to the disk。 对于其他(更安全的)浏览器,您需要下载或Adobe AIR。