• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 378
  • Last Modified:

how to use JScripts to detect following ...


How to extract the version code for (WSH)Windows Script Host,VML and XML in JScripts?
 
Thank you.


The Target Browser is: Microsoft Internet Explorer 5.0+
0
sina2000
Asked:
sina2000
  • 10
  • 6
1 Solution
 
sina2000Author Commented:

How to extract the version code for (WSH)Windows Script Host,VML and XML in JScripts?
 
Thank you.
0
 
Michel PlungjanIT ExpertCommented:
I would think some modification to this:

   bMSvmAvailable = oClientCaps.isComponentInstalled("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid");
   sMSvmVersion   = oClientCaps.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid");
   if (sMSvmVersion != "") sMSvmVersion = "Version " + sMSvmVersion;
   sNeg = (bMSvmAvailable) ? "" : "not ";
   alert("Browser component: " + sMSvmVersion + " is " + sNeg + "installed.");

I would have to look for the objectid of wsh, vml and xml
0
 
Michel PlungjanIT ExpertCommented:
<MSIE:CLIENTCAPS ID="oClientCaps" />
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
sina2000Author Commented:

Waiting...   :-)

0
 
Michel PlungjanIT ExpertCommented:
0
 
Michel PlungjanIT ExpertCommented:
0
 
Michel PlungjanIT ExpertCommented:
I cannot find the VML one.

You can use WSH to look in the registry for
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Advanced INF Setup\MSVML

The ComponentVersion should give the value too

You can use WSH to give it's own version:
WScript.Echo("This is WSH version", WScript.Version)

Michel
0
 
Michel PlungjanIT ExpertCommented:
AHA - looked at the wrong key!!!

oClientCaps.getComponentVersion("{10072CEC-8CC1-11D1-986E-00A0C955B42F}","componentid")
0
 
Michel PlungjanIT ExpertCommented:
Here is the script I have so far:

<HTML xmlns:MSIE>
<head>
<SCRIPT LANGUAGE="JavaScript"><!-- // cloak
/* Nailing down the browser name and version
   please let me know if your browser chokes on this.
   (c) 1996-2001 Michel Plungjan michel@irt.org */

var appVer   = navigator.appVersion.toLowerCase();
var agt      = navigator.userAgent.toLowerCase();
var bName    = navigator.appName;
var ie       = false;
var iePos    = agt.indexOf('msie');
var operaPos = agt.indexOf('opera');
var ns6Pos   = agt.indexOf('netscape6');
var version  = parseFloat(appVer);
var sE = uL = sL = '';
var bL = navigator.language;
if (!bL) bL = 'N/A';

if (iePos!=-1 && operaPos==-1) {
   ie = true;
   version = parseFloat(agt.substring(iePos+5,agt.indexOf(';',iePos)));
}
else if (operaPos!=-1) {
   version = parseFloat(agt.substring(operaPos+5,agt.indexOf('[',operaPos)));
   bName= "Opera";
}
else if (ns6Pos !=-1) {
   version = parseFloat(agt.substring(ns6Pos+10));
}
if (ie) {
   sE = ScriptEngine() + ' v' +
        ScriptEngineMajorVersion()+'.'+
        ScriptEngineMinorVersion()+
        ' build '+ScriptEngineBuildVersion();
   uL  = navigator.userLanguage;
   bL  = navigator.browserLanguage;
   sL  = navigator.systemLanguage;
}
Text  = 'userAgent and appVersion:<PRE>'
Text +=     'navigator.userAgent : ' + navigator.userAgent;
Text += '<BR>navigator.appName   : ' + navigator.appName;
Text += '<BR>navigator.appVersion: ' + navigator.appVersion;
Text += '</PRE>Parsed Browser details<PRE>';
Text +=     'Browser make        : ' + bName;
Text += '<BR>Browser version     : ' + version;
if (ie) {
   Text += '<BR>Scripting engine    : ' + sE;
   Text += '<BR>userLanguage        : ' + uL;  
   Text += '<BR>browserLanguage     : ' + bL;  
   Text += '<BR>systemLanguage      : ' + sL;  
}  
else Text += '<BR>browserLanguage     : ' + bL;  
Text += '</PRE>';
document.write(Text);

if (document.all) window.onload=show;
function show() {
   if (!ie) return;
   browserComponentAvailable = oClientCaps.isComponentInstalled("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid");
   browserComponentVersion   = oClientCaps.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid");
   vmlComponentAvailable = oClientCaps.isComponentInstalled("{10072CEC-8CC1-11D1-986E-00A0C955B42F}","componentid");
   vmlComponentVersion   = oClientCaps.getComponentVersion("{10072CEC-8CC1-11D1-986E-00A0C955B42F}","componentid");
   
//WScript.Echo("This is WSH version", WScript.Version)
   if (browserComponentVersion != "") browserComponentVersion = "Version " + browserComponentVersion;
   sNeg = (browserComponentAvailable) ? "" : "not ";
   msVers  = "<pre>Browser component: " + browserComponentVersion + " is " + sNeg + "installed.<br>";
   if (vmlComponentVersion != "") vmlComponentVersion = "Version " + vmlComponentVersion;
   sNeg = (vmlComponentAvailable) ? "" : "not ";
   msVers += "VML component    : " + vmlComponentVersion + " is " + sNeg + "installed.";
   myText.innerHTML=msVers;
}
// uncloak --></SCRIPT>
<STYLE><!--
@media all {
   MSIE\:CLIENTCAPS {behavior:url(#default#clientcaps)}
}
--></STYLE>
</head>
<body>
<MSIE:CLIENTCAPS ID="oClientCaps" />
<pre id="myText"></pre>
</body>
0
 
sina2000Author Commented:
Many thanks ...But how can I get the version of WSH in common HTML document ? :-)
0
 
sina2000Author Commented:

var arrComponents=new Array(
new Array('Address Book','{7790769C-0471-11D2-AF11-00C04FA35D02}'),
new Array('Windows Desktop Update NT','{89820200-ECBD-11CF-8B85-00AA005B4340}'),
new Array('DirectAnimation','{283807B5-2C60-11D0-A31D-00AA00B92C03}'),
new Array('DirectAnimation Java Classes','{4F216970-C90C-11D1-B5C7-0000F8051515}'),
new Array('DirectShow&reg;','{44BBA848-CC51-11CF-AAFA-00AA00B6015C}'),
new Array('Dynamic HTML Data Binding','{9381D8F2-0288-11D0-9501-00AA00B911A5}'),
new Array('Dynamic HTML Data Binding for Java','{4F216970-C90C-11D1-B5C7-0000F8051515}'),
new Array('Internet Connection Wizard','{5A8D6EE0-3E18-11D0-821E-444553540000}'),
new Array('Internet Explorer 5 Web Browser','{89820200-ECBD-11CF-8B85-00AA005B4383}'),
new Array('Internet Explorer Classes for Java','{08B0E5C0-4FCB-11CF-AAA5-00401C608555}'),
new Array('Internet Explorer Help','{45EA75A0-A269-11D1-B5BF-0000F8051515}'),
new Array('Internet Explorer Help Engine','{DE5AED00-A4BF-11D1-9948-00C04F98BBC9}'),
new Array('Windows Media Player','{22D6F312-B0F6-11D0-94AB-0080C74C7E95}'),
new Array('NetMeeting NT','{44BBA842-CC51-11CF-AAFA-00AA00B6015B}'),
new Array('Offline Browsing Pack','{3AF36230-A269-11D1-B5BF-0000F8051515}'),
new Array('Outlook Express','{44BBA840-CC51-11CF-AAFA-00AA00B6015C}'),
new Array('Task Scheduler','{CC2A9BA0-3BDD-11D0-821E-444553540000}'),
new Array('Microsoft virtual machine','{08B0E5C0-4FCB-11CF-AAA5-00401C608500}'),
new Array('VRML 2.0 Viewer','{90A7533D-88FE-11D0-9DBE-0000C0411FC3}'),
new Array('Wallet','{1CDEE860-E95B-11CF-B1B0-00AA00BBAD66}'),
new Array('Vector Markup Language (VML)','{10072CEC-8CC1-11D1-986E-00A0C955B42F}')
);

var arrPlugins=new Array(
new Array('Adobe&reg; SVG Viewer','Adobe.SVGCtl',3),
new Array('Macromedia&reg; Shockwave Player','SWCtl.SWCtl',9),
new Array('Macromedia&reg; Flash Player','ShockwaveFlash.ShockwaveFlash',6),
new Array('Apple&reg; QuickTime Player','QuickTime.QuickTime',0),
new Array('Real Player G2','rmocx.RealPlayer G2 Control',0),
new Array('Onflow&reg; Player','IEOnflow.IEOnflow1',8)
);

var sNoDetect='????';
var oClientCaps;


 
function getComponentInfo(sParam){
try {
var bInstalled=oClientCaps.isComponentInstalled(sParam,'ComponentID');
if (!bInstalled) {var sReturn='??????';}
else {var sReturn='??????';sReturn+='????: '+oClientCaps.getComponentVersion(sParam,'ComponentID').replace(/,/g,'.');}
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getPluginsVersion(sParam,iParam){
for (h=iParam;h>-2;h--) {
if (h==-1) return sNoDetect;
if (h==0) var sPluginsName=sParam;
else var sPluginsName=sParam+'.'+h.toString();
try {var oTempPluginsObject=new ActiveXObject(sPluginsName);break;}
catch (ex) {continue;}
}
if (h==0) return('??????');
else return('??????????: '+h.toString()+'.0');
}

function getXML2Version(){         /*  Microsoft XML2 Parser  */
var sParam='Msxml2.DOMDocument';var iParam=5;
for (h=iParam;h>-2;h--) {
if (h==-1) return sNoDetect;
if (h==0) var sPluginsName=sParam;
else var sPluginsName=sParam+'.'+h.toString()+'.0';
try {var oTempPluginsObject=new ActiveXObject(sPluginsName);break;}
catch (ex) {continue;}
}
if (h==0) return('??????');
else return('??????????: '+h.toString()+'.0');
}

function getXMLVersion(){         /*  Microsoft XML DOM  */
var sParam='Microsoft.XMLDOM';var iParam=3;
for (h=iParam;h>-2;h--) {
if (h==-1) return sNoDetect;
if (h==0) var sPluginsName=sParam;
else var sPluginsName=sParam+'.'+h.toString()+'.0';
try {var oTempPluginsObject=new ActiveXObject(sPluginsName);break;}
catch (ex) {continue;}
}
if (h==0) return('??????');
else return('??????????: '+h.toString()+'.0');
}

/*function getWSHVersion(){           Windows Script Host ????  
try { var sReturn=oWSHObject.Version+'.'+oWSHObject.BuildVersion; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}*/

function getPlatform(){         /*  ????????  */
try { var sReturn=navigator.platform; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getBrowserName(){         /*  ??????????  */
var sReturn=navigator.appVersion;
var SPeXt=(navigator.userAgent.indexOf("Opera")!=-1 && navigator.userAgent.indexOf("5.")>0) ? "op" : (document.all) ? "ie" : (document.layers) ? "nn" : (!document.all && document.getElementById) ? "mo":"";
var arrVersion=sReturn.split("[");
if (SPeXt=="op"){arrVersion=sReturn.split("(");arrVersion[1]="Opera "+arrVersion[0];}
sInfo=sReturn.split(";");
if(SPeXt=="mo"){
nnbrws=navigator.userAgent.split(";");
if (nnbrws[4]) if (nnbrws[4].match("Netscape")){nnbrws=nnbrws[4].split("Netscape");sInfo[1]="Netscape"+nnbrws[1];}
else{nnbrws=nnbrws[4].split(")");sInfo[1]="Mozilla"+nnbrws[0];}}
if (SPeXt=="ie" || SPeXt=="mo") return(sInfo[1]);else return(navigator.appName+' '+arrVersion[0]);
return(navigator.appName+sReturn);
}

function getSystemName(){         /*  ????????  */
var sReturn=navigator.userAgent.toLowerCase();
var sWin='Microsoft&reg; Windows ';
try {
if (sReturn.indexOf('win')!=-1) {
if((sReturn.indexOf('nt')!=-1) && (sReturn.indexOf('5.1')!=-1)) return(sWin+'XP');
if((sReturn.indexOf('nt')!=-1) && (sReturn.indexOf('5.0')!=-1)) return(sWin+'2000');
if (sReturn.indexOf('nt')!=-1) return(sWin+'NT 4.0');
if((sReturn.indexOf('98')!=-1) && (sReturn.indexOf('9x')!=-1)) return(sWin+'Me');
if (sReturn.indexOf('98')!=-1) return(sWin+'98');
if (sReturn.indexOf('95')!=-1) return(sWin+'95');
}
if(sReturn.indexOf('IRIX')!=-1) return('Irix');
if(sReturn.indexOf('Mac')!=-1) return('Macintosh');
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

// Windows 2000 - Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)
// Windows XP     - Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)
// Windows Me     - Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98; Win 9x 4.90)
// Windows 98     - Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)
// Windows 95     - Mozilla/4.0 (compatible; MSIE 6.0b; Windows 95)

function getLanguageCode(sParam){
var sReturn=sParam;
try {
if (sReturn.indexOf('zh-cn')!=-1) return('????????('+sReturn+')');
if (sReturn.indexOf('zh-sg')!=-1) return('????????('+sReturn+')');
if (sReturn.indexOf('en')!=-1) return('????('+sReturn+')');
if (sReturn.indexOf('ar')!=-1) return('????????('+sReturn+')');
if (sReturn.indexOf('fr')!=-1) return('????('+sReturn+')');
if (sReturn.indexOf('ko')!=-1) return('????('+sReturn+')');
if (sReturn.indexOf('ja')!=-1) return('????('+sReturn+')');
if (sReturn.indexOf('Spanish')!=-1) return('????????('+sReturn+')');
if (sReturn.indexOf('ru')!=-1) return('????('+sReturn+')');
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getUserLanguage(){         /*  ????????  */
try { var sReturn=getLanguageCode(navigator.userLanguage); }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getBrowserLanguage(){         /*  ??????????  */
try { var sReturn=getLanguageCode(navigator.browserLanguage); }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getSystemLanguage(){         /*  ????????  */
try { var sReturn=getLanguageCode(navigator.systemLanguage); }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getColorDepth(){         /*  ????????????(Color Depth)  */
try { var sReturn=window.screen.colorDepth+'??'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getBufferDepth(){         /*  ????????????(Buffer Depth)  */
try { var sReturn=window.screen.bufferDepth; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getScreenAvailHeight(){         /*  ??????????????  */
try { var sReturn=window.screen.availHeight+'????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getScreenAvailWidth(){         /*  ??????????????  */
try { var sReturn=window.screen.availWidth+'????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getScreenHeight(){         /*  ??????????????  */
try { var sReturn=window.screen.height+'????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getScreenWidth(){         /*  ??????????????  */
try { var sReturn=window.screen.width+'????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getUpdateInterval(){         /*  ??????????  */
try { var sReturn=window.screen.updateInterval+'????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getFontSmoothing(){         /*  ????????????????  */
try { if (window.screen.fontSmoothingEnabled) var sReturn='????';else var sReturn='????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getJavaEnabled(){         /*  Java??????(Microsoft&reg; virtual machine)  */
try { if (oClientCaps.javaEnabled) var sReturn='????';else var sReturn='????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getCookieEnabled(){         /*  ??????Cookies  */
try { if (navigator.cookieEnabled) var sReturn='????';else var sReturn='????'; }
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getConnectionType(){         /*  ????????  */
var sReturn;
try {
switch (oClientCaps.connectionType) {
case 'lan' : sReturn='??????????(LAN)????';break;
case 'modem' : sReturn='??????????????(Modem)????';break;
case 'offline' : sReturn='????????';break;
default : sReturn=sNoDetect;break;
}
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getScriptEngineInfo(){         /*  ????????(Scripting Engine)  */
var sReturn='';
try {
sReturn+=ScriptEngine()+' ';
sReturn+=ScriptEngineMajorVersion()+".";
sReturn+=ScriptEngineMinorVersion()+".";
sReturn+=ScriptEngineBuildVersion();
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getCPUClass(){         /*  ??????(CPU)  */
var sReturn;
try {
switch (navigator.cpuClass) {
case 'Alpha' : sReturn='Digital??????(Alpha)';break;
case 'x86' : sReturn='Intel??????(x86)';break;
case '68K' : sReturn='Motorola??????(68K)';break;
case 'PPC' : sReturn='Motorola??????(PPC)';break;
default : sReturn=sNoDetect;break;
}
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getWindowsPath(){         /*  ????????????(Windows)  */
try {
var oFileObject=new ActiveXObject("Scripting.FileSystemObject");
var sReturn=oFileObject.GetSpecialFolder(0);
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getSystemPath(){         /*  ????????????(System)  */
try {
var oFileObject=new ActiveXObject("Scripting.FileSystemObject");
var sReturn=oFileObject.GetSpecialFolder(1);
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}

function getTemporaryPath(){         /*  ??????????????(Temporary)  */
try {
var oFileObject=new ActiveXObject("Scripting.FileSystemObject");
var sReturn=oFileObject.GetSpecialFolder(2);
}
catch (er) { var sReturn=sNoDetect;}
return sReturn;
}


function initComponents(){
oClientCaps=document.createElement('<rdl:clientCaps id=idClientCaps>');
document.body.appendChild(oClientCaps);
//oWSHObject=new ActiveXObject("WScript");
}

/* Part of RDL(TM) - Written by Rain1977 */
/* HomeSite: http://www.dhtmlet.com  E-Mail: rainer@mail.hf.ah.cn */
0
 
Michel PlungjanIT ExpertCommented:
If you can tell me how to create a WScript object then I can tell you how to get the version. After looking hard on the net I only came up with how to create a SHELL object.

Sorry


<script>
    try
    {
        var srvpk, regkey, shell;
     
        shell = new ActiveXObject( "WScript.Shell" );
        regkey = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\CSDVersion";
        srvpk  = shell.RegRead( regkey );
         
        document.write( "Current Service Pack: " + srvpk );
    }
    catch( e )
    {
        document.write("Error: " + e.description );
    }
</script>
0
 
Michel PlungjanIT ExpertCommented:
PS: Next time do NOT bother accepting a comment as answer if you only feel like giving a C grade - I am only trying to help you and do not want to be punished because I did not have time or knowledge to solve ALL your problems!!!

Michel
0
 
sina2000Author Commented:
I am terribly sorry to bother you with my questions. Please forgive me for any uneasy feelings concerning my letter. I didn't quite understand you because of my clumsy English. Sorry again.
:-P

Thank you for your kind help !  ^_*
0
 
sina2000Author Commented:
I am terribly sorry because of my clumsy English.  Please forgive me .

:-)
0
 
Computer101Commented:
sina2000,
Do you have any problem with me changing the grade.  Based on your comments, I do not think you would mind.

Thank you
Computer101
Community Support Moderator
0
 
Michel PlungjanIT ExpertCommented:
I would be very pleased if you did!

Thanks

Michel
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 10
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now