Développement d’applications Windows avec JavaScript

Je suis actuellement dans le besoin de développer une application Windows. Je veux garder les choses simples (dans l’esprit de uTorrent) et j’aimerais que le programme de résultats soit un fichier .exe unique contenant tout ce dont il a besoin.

Le programme est simple. Il faut juste une interface utilisateur. Il doit fonctionner pendant une longue période de temps (placez-le sous la forme d’une icône de plateau). Il doit effectuer des tâches de routine telles que des E / S simples. Il doit également accéder à Internet, en particulier à certains serveurs Web.

En dehors de ces petites exigences, je voudrais écrire tout cela en JavaScript, car je me sens plus à l’aise que toute autre langue.

Je sais qu’il y a des choses comme Windows Script Host qui vous permettent d’exécuter des programmes JavaScript et d’interagir avec certaines API Win32, mais serai-je capable de faire tout ce dont j’ai besoin avec Windows Script Host? Puis-je emballer tout Windows Script Host dans un seul fichier .exe?

Si non, quelles alternatives ai-je pour JavaScript?

J’ai constaté qu’il existe en fait un compilateur JavaScript fourni avec le framework .NET appelé jsc.exe .

Pour plus d’informations:

http://www.phpied.com/make-your-javascript-a-windows-exe/

http://msdn.microsoft.com/en-us/library/7435xtz6(VS.80).aspx

Je suppose que ce n’est pas vraiment JavaScript car il introduit des choses supplémentaires comme l’ import et même une syntaxe de class qui est bizarre pour moi. Mais cela fonctionne parfaitement pour moi car je vais juste faire les choses auxquelles je suis habitué sur le web.

Outre Windows Script Host, il existe

  • Windows Desktop Gadgets (Vista et Windows 7 uniquement)
  • Applications HTML (HTA)

Les deux sont écrits avec des technologies Web standard, HTML, JavaScript, Flash, etc. Ils peuvent également être étendus avec des objects COM / contrôles ActiveX tels que FileSystemObject, WMI, WScript ou même ceux que vous écrivez vous-même. Les gadgets Windows Desktop ont access à une API / un espace de noms distinct avec diverses propriétés et méthodes Win32-esque.

Je pense que vous recherchez Adobe AIR

Le moteur d’exécution Adobe® AIR® 2 permet aux développeurs d’utiliser HTML, JavaScript, le logiciel Adobe Flash® et ActionScript® pour créer des applications Web qui s’exécutent en tant qu’applications clientes autonomes sans les contraintes d’un navigateur. ~ Le site AIR

Il semble que personne n’ait mentionné la JSDB .

JSDB offre un environnement de ligne de commande sur lequel vous pouvez exécuter du code JavaScript arbitraire. Vous pouvez facilement comstackr dans un fichier .exe en utilisant la commande copy /b jsdb.exe+program.zip program.exe

Il est important de savoir que vous devez appeler votre fichier main js main.js dans un fichier zip standard. Vous ne savez pas si le nom program.zip est requirejs.

Je n’ai pas encore essayé de faire des applications avec cette interface graphique – bien qu’il semble prendre en charge diverses API comme ActiveX.

Il est possible qu’en utilisant la commande copy / b mentionnée ci-dessus, vous puissiez comstackr un script à partir du fichier wscript.exe – mais j’ai essayé et je ne pouvais pas le faire fonctionner. Faites-moi savoir si quelqu’un essaie et a du succès d’une manière ou d’une autre.

Je pense que la meilleure façon de faire est le moteur JavaScript V8 fourni par Google.

“Le V8 peut être autonome ou peut être intégré dans n’importe quelle application C ++.” – qui, à mon avis, est parfait pour vos besoins, car vous pouvez faire la plupart des choses en JavaScript et utiliser les interfaces fournies pour communiquer avec le système.

Internet Explorer a introduit le concept d’ applications hypertextes dans Internet Explorer 5. Il n’a jamais été un grand pas en avant, si bien que les ressources et la documentation sont rares.

Le concurrent de Mozilla, Prism, semble bien vivant, et vaut vraiment le coup d’oeil.

Prism est une application qui permet aux utilisateurs de séparer les applications Web de leur navigateur et de les exécuter directement sur leur bureau.

Je ne suis pas à 100% mais je crois que WSH utilise JScript ou WScript, pas JavaScript.

Color me rend fou, mais il n’ya qu’un pas court à faire en Javascript pour Java ou C #. Je suggère C # car, sur une machine Windows, les bibliothèques sont déjà présentes. Vous pouvez simplement copier votre fichier .exe et le laisser ripper.

Si vous voulez un seul fichier .EXE, quelles sont les durées d’exécution s’ils sont requirejs?

Si vous voulez que le runtime .NET soit préinstallé, alors vous faites tout votre travail dans JScript.NET

Chromium Embedded Framework (CEF) peut vous aider. Je ne sais pas clairement comment, mais j’ai trouvé de nombreuses applications utilisant ce cadre.

http://code.google.com/p/chromiumembedded/

Introduction à CEF: Le Chromium Embedded Framework (CEF) est un projet open source fondé par Marshall Greenblatt en 2008 pour développer un contrôle de navigateur Web basé sur le projet Google Chromium. CEF prend actuellement en charge une gamme de langages de programmation et de systèmes d’exploitation et peut être facilement intégré à la fois dans des applications nouvelles et existantes. Il a été conçu dès le départ dans un souci de performance et de facilité d’utilisation. Le framework de base inclut des interfaces de programmation C et C ++ exposées via des bibliothèques natives qui isolent l’application hôte des détails de l’implémentation de Chromium et WebKit. Il offre une intégration étroite entre le contrôle du navigateur et l’application hôte, y compris la prise en charge des plug-ins personnalisés, des protocoles, des objects JavaScript et des extensions JavaScript. L’application hôte peut éventuellement contrôler le chargement des ressources, la navigation, les menus contextuels, l’impression, etc., tout en profitant des mêmes performances et technologies HTML5 disponibles dans le navigateur Web Google Chrome.

De nombreuses personnes et organisations fournissent du temps et des ressources pour soutenir le développement du CEC, mais une plus grande implication de la communauté est toujours bienvenue. Cela inclut le soutien au projet CEF principal et aux projets externes qui intègrent le CEF avec des langages et des frameworks de programmation supplémentaires (voir la section “Projets externes” ci-dessous).

Pourquoi ne pas utiliser Rhino – JavaScript sur la JVM? Vous pouvez même comstackr vos scripts pour classer des fichiers et les empaqueter dans un JAR avec Rhino pour faciliter la dissortingbution …