代码之家  ›  专栏  ›  技术社区  ›  JimDel

Web应用程序可以访问和修改Windows注册表吗?

  •  2
  • JimDel  · 技术社区  · 16 年前

    我用C语言编写桌面应用程序已经有一段时间了,但我越来越对并非每个人都安装了.NET 2或更高版本感到失望。我没有办法升级他们的系统来满足我的需要。我的应用程序主要是与我工作的公司的主程序一起运行的实用程序。他们访问文件系统和注册表。作为一个对编程比较陌生的人,我想知道把这些工具放到网络上是否能解决我的一些问题。但我不知道Web应用是否可以访问这些Windows部分。我在考虑用Rails或ASP.NET编写这些Web应用程序。所以我的问题是。Web应用程序可以访问和修改Windows的注册表和文件系统吗?

    谢谢。

    7 回复  |  直到 16 年前
        1
  •  5
  •   Blindy    16 年前

    不,像ASP.NET或Rails这样的“Web应用”只在服务器上运行,只向客户机提供HTML。因此客户端代码所能做的就是在浏览器沙盒中运行的JScript所能做的,即没有文件访问或注册表访问。

    但是,您可以在获得完全访问权限的客户端计算机上安装ActiveX,但用户必须同意安装它,因为这会带来安全风险。

        2
  •  3
  •   gbjbaanb    16 年前

    将应用程序改为Web应用程序(Rails使用起来很酷)是一个很好的选择-您的用户不需要安装任何东西,升级很容易,依赖不再是一个问题。

    但是,现在您需要开始重新设计应用程序,这样它们就不需要向客户端写入任何内容,除了cookie(存储在浏览器中)。如果你能做到这一点,那么迁移到一个webapp将是非常好的。

    如果你不能,我的建议是学习与你公司应用程序相同的语言。一旦你这样做了,公司应用程序将已经照顾到依赖性,你只需要提供你的应用程序旁边的实用程序,也许甚至在安装程序,或只是复制文件到一个子目录。如果你想学习Ruby,那么学习公司语言也同样困难(只有你能够重用主应用程序中使用的大量代码)

        3
  •  2
  •   JaredPar    16 年前

    不,传统的ASP.NET应用程序无法访问Windows框上的文件系统或注册表。简单地说,因为它实际上不在客户机上运行。相反,它在没有访问本地计算机的服务器上运行。

    应用程序的某些部分可以在客户机上运行。例如,基于浏览器的应用程序。但是,这需要将2.0框架安装在客户机上,这样您就可以回到square 1。

        4
  •  1
  •   pmarflee    16 年前

    不,这不可能。由于存在安全隐患,Web应用程序无法修改用户计算机上的注册表和/或文件系统。您需要开发一个Windows应用程序来进行这些更改。不过,您可以随时在您的网站上下载此工具。

        5
  •  1
  •   eKek0    16 年前

    不,不能用Web应用程序来实现。除了其他人已经说过的,一个Web应用程序运行在浏览器中,而不是运行在操作系统中,所以你所能做的就是浏览器允许你做什么,而不是你想做什么,浏览器不允许你控制主机。

        6
  •  1
  •   Colin    16 年前

    我猜贵公司使用的桌面应用程序使用注册表来存储工作站/用户特定(状态)数据。

    移动到基于Web的应用程序并不意味着不再可能存储状态数据,只需在数据库中包含一个可用于保存相同(状态)数据的表就可以了。不再需要注册表。

    另一个优点是,通过移动到完全基于Web的应用程序,您不必担心最终用户,因为代码是在服务器上运行的,所以最终用户所得到的只是HTML-D格式的输出。

    唯一要记住的是跨浏览器兼容性,不要创建只在IE中工作的应用程序,例如,它必须在所有主要浏览器中看起来和工作都一样。

        7
  •  1
  •   Jerry Bullard    16 年前

    有一些产品,例如 Xenocode 以及VMware的ThinApp,它允许您虚拟化应用程序的依赖关系,使您的.NET应用程序可以在未安装.NET框架的计算机上运行。左栏位的另一个选项。