Variables d'environnement de lecture avec Javascript

J'ai besoin de lire l'heure du système à partir des variables d'environnement sur le système d'exploitation du client. J'ai cherché sur Stackoverflow et j'ai constaté que ce n'est pas possible. Cependant, ces réponses provenaient de 2010 et je souhaite demander si quelque chose a changé depuis.

Est-il possible avec une sorte de cadre? Ou Javascript est-il encore bloqué et coupé du système d'exploitation?

szpic , si Javascript n'était pas disponible sur le système d'exploitation, un criminel à demi-intelligent pourrait entrer sur votre ordinateur et prendre le contrôle. Permettre des variables environnementales est trop faible pour être autorisé.

Regardez toutes vos variables environnementales et demandez-vous si tout le monde sur la planète devrait avoir accès à toutes ces données sur votre ordinateur.


Si vous voulez le faire avec Javascript, vous devrez utiliser un navigateur Web spécial, tel que node-webkit . Il ne fonctionnera pas sur un navigateur Web normal, cependant, ne vous attendez pas à ce que plus de 0,0001% de la population s'attendre à exécuter votre page.


Je ne connais pas votre utilisation prévue, mais une astuce, pour jeter une variable environnementale, consiste à créer un raccourci vers votre application Web, et à l'inclure dans le cadre d'un paramètre URL (au moins sur Winblows).

 http://myapp.com?computername=%COMPUTERNAME% 

FWIW …. Jouez simplement avec un fichier .HTA (oui, qui utilise le moteur de MSIE pour que vous puissiez probablement oublier d'autres navigateurs) et le JavaScript suivant lit la variable %TEMP% path pour définir un nom de chemin de fichier pour de manière sécurisée Écrit un fichier temporaire. Cela fonctionne bien pour moi:

 var oTest = new ActiveXObject("wscript.shell"); pathTest = oTest.ExpandEnvironmentStrings("%TEMP%") + "\\test_it.txt"; oTest = null; alert(pathTest); // proves we can read %TEMP% // and create the file, to complete the example var oFSO = new ActiveXObject("Scripting.FileSystemObject"); var fil = oFSO.CreateTextFile(pathTest, true); fil.WriteLine("Hello wonderful world!"); fil.Close(); 

Il n'y a qu'une seule façon de le faire: en utilisant un navigateur Web spécial. Quelque chose comme node-webkit . Il intègre le moteur webkit avec node.js, afin que vous puissiez l'utiliser avec DOM.

 document.write(require('os').type()); 

Mais comme tout le monde l'a dit – il n'y a aucune chance de le faire avec un navigateur Web "normal".

Cela a été possible en utilisant VBScript mais le support est supprimé dans IE11. Si vous êtes dans un environnement IE (tel qu'un Intranet interne), vous pouvez convertir votre Code VB (CreateObject ("wscript.shell")) pour utiliser ActiveX à la place. Cela vous permettra de résoudre le problème que VB Script est déprécié dans le mode bord IE11 et permet à votre page d'accéder à vos variables d'environnement et d'être utilisé en mode Bord. Évidemment, ce n'est que IE, mais si vous utilisez VBScript avant qu'il ne soit également IE.

 var ax = new ActiveXObject("wscript.shell"); uname = ax.ExpandEnvironmentStrings("%USERNAME%"); av = null; alert(uname); 

L'objet date () javascript fournit l'heure du système client.