admin管理员组

文章数量:1221766

Is it possible to create Windows desktop applications in JavaScript?

I am aware of HTA (HTML Application) programs, but was wondering if there were a newer .NET or other solution where I could make use of the DLL libraries included with Visual Studio.

Is it possible to create Windows desktop applications in JavaScript?

I am aware of HTA (HTML Application) programs, but was wondering if there were a newer .NET or other solution where I could make use of the DLL libraries included with Visual Studio.

Share Improve this question edited Nov 15, 2019 at 3:53 posfan12 asked Jan 24, 2011 at 10:25 posfan12posfan12 2,6519 gold badges37 silver badges63 bronze badges 7
  • I don't know much about .NET but Actionscript is very similar to Javascript. With Flex/AIR, you can create desktop applications. – zawhtut Commented Jan 24, 2011 at 10:39
  • Possible duplicate of Can you do Desktop Development using JavaScript? – Emile Bergeron Commented Nov 11, 2019 at 21:05
  • @EmileBergeron Actually, this one seems to be pretty .net-specific and not a dupe – Bergi Commented Nov 11, 2019 at 21:12
  • @Bergi It's quite old, but it also sounds a lot like an XY problem, where OP thought that leveraging .NET was the solution. – Emile Bergeron Commented Nov 11, 2019 at 21:38
  • 1 @EmileBergeron I understood the ability to call .net APIs from the application as a requirement, not as a solution idea. But yeah, it's old and probably still off-topic, so let's just leave it at that. – Bergi Commented Nov 11, 2019 at 22:24
 |  Show 2 more comments

5 Answers 5

Reset to default 5

Latest .NET version doesn't have such feature, but you've options to do it:

a) A WebBrowserObject in a WPF or Windows Forms application (it'll be an embedded Internet Explorer).

b) Opera Widgets, which is a Opera browser-based presentation engine which lets you implement desktop applications with standard Web technologies and it follows the W3C widgets standard. These applications can run standalone, meaning that user won't need to open Opera to run them. There's a counterpart: Opera must be installed in user's machine.

There're other options like Mozilla XUL but its limited support for desktop application development would prevent you from using it.

I know this question is a bit old, but I thought I'd answer for the googlers out there.

You could use this project. Its basically a javascript interepter that has access to the .Net framework.

So you could do something like:

jish.assembly('path/to/System.Windows.Forms.dll');

var mb = jish.create('System.Windows.Forms.MessageBox');
mb.Show('Hello World');

And it works, I've not however tried more complex winforms apps so can't say whether it will fall down eventually.

Let me know if anyone tries it.

Edit 1: Well I tried it with a slightly more complex example and it worked also. Try this:

jish.assembly('path/to/System.Drawing.dll')
jish.assembly('path/to/System.Windows.Forms.dll')

var app = jish.create('System.Windows.Forms.Application');
var form = jish.create('System.Windows.Forms.Form');
var lbl = jish.create('System.Windows.Forms.Label');
form.Text = lbl.Text = 'Hello World!';
lbl.Location = jish.create('System.Drawing.Point', 50, 50);
form.Controls.Add(lbl);

app.Run(form);

Guido

There are a few solutions out there that will let you package javascript/html/css code into a cross-platform "native" application, usually complete with an installer and updating mechanism.

Off the top of my head:

  • Mozilla Prism, not under active development anymore, apparently. open source.
  • Adobe AIR, which doesn't actually have to use Flash, contrary to popular belief. actively developed, closed source.
  • Appcelerator Titanium Desktop, which is both open source and actively developed.

You could use Mozilla's XULRunner environment to utilize local JavaScript in an application you build. Mozilla's environment can take advantage of XPCOM components, and XPCOM components can be developed using C++.

Therefore, one option could be to use this tried and tested environment to build your application using JavaScript and XUL, and use the power of C++ and DLL's in the XPCOM components.

Examples of desktop applications developed on this platform include:

  • Firefox - Web Browser
  • Thunderbird - An Email Client
  • Songbird - A Media Player
  • Sunbird - A Calendar Application

You can use WebKit in a WinForms application (the HTML engine used in Safari and Google Chrome).

.Net control: http://webkitdotnet.sourceforge.net/

本文标签: netJavaScript desktop applicationsStack Overflow