Solved

"Test you machine" script / System Check web utility

Posted on 2009-04-06
6
869 Views
Last Modified: 2013-11-19
Dear colleagues,

We host a third-party application that work via web browser and we would like to run a "system check" page which would allow the user to see a "report" whether his computer is ready to run it.

We'd need something like:

1. OS version
2. Browser version
3. Windows Media Player installed
4. Silverlight installed
5. Available Bandwidth
6. Screen Resolution

This page has pretty much the functionality we'd like ours to have: http://vshow.on24.com/view/vts/tys/tys.htm

My question is: does anyone know where and if I can find such type of scripts available (even if I need to purchase one), which can ben hosted in IIS in a Windows Server?

Thanks in advance,

Helder Conde
0
Comment
Question by:HelderConde
  • 3
  • 3
6 Comments
 
LVL 5

Accepted Solution

by:
mfhorizon earned 500 total points
Comment Utility
Hi Helder,

Check the code below for your reference. You can save it in a file and use it in your webpage as <script src="....your_web_directory/BROWSER_CHECK_CODE.js" language="javascript"></script>

It should give you all what you need.

Cheers!!





/* 	BROWSER & OS DETECTION */
 

// convert all characters to lowercase to simplify testing

var agt=navigator.userAgent.toLowerCase();

var appVer = navigator.appVersion.toLowerCase();

//alert(appVer + ":" + agt)

// *** BROWSER VERSION ***
 

var is_minor = parseFloat(appVer);

var is_major = parseInt(is_minor);
 

var is_opera = (agt.indexOf("opera") != -1);

var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);

var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);

var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);

var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);

var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk

var is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1); // new 021205- dmr

var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128

var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6); // new021205 -- dmr
 

// Note: On IE, start of appVersion return 3 or 4

// which supposedly is the version of Netscape it is compatible with.

// So we look for the real version further on in the string
 

var iePos  = appVer.indexOf('msie');

if (iePos !=-1) {

   is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))

   is_major = parseInt(is_minor);

}
 

// ditto Konqueror

                                  

var is_konq = false;

var kqPos   = agt.indexOf('konqueror');

if (kqPos !=-1) {                 

   is_konq  = true;

   is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));

   is_major = parseInt(is_minor);

}                                 
 

var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk

var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk

var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk
 

//var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;

var is_safari = ((agt.indexOf('safari')!=-1) && (agt.indexOf('chrome')==-1))?true:false;

var is_khtml  = (is_safari || is_konq);

var is_safari_ver = is_major

if(is_safari && agt.indexOf("version/")>0){

	is_safari_ver = parseInt(agt.substring(agt.indexOf("version/")+8))

}
 

var is_safari2up = (is_safari && is_safari_ver >= 2);
 

var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;

var is_gver  = 0;

if (is_gecko) is_gver=navigator.productSub;
 

var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&

                (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&

                (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&

                (is_gecko) && 

                ((navigator.vendor=="")||(navigator.vendor=="Mozilla")||(navigator.vendor=="Debian")));

var is_fb = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&

             (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&

             (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&

             (is_gecko) && (navigator.vendor=="Firebird"));

var is_fx = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&

             (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&

             (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&

             (is_gecko) && (agt.indexOf('firefox')!=-1 || navigator.vendor=="Firefox"));

if ((is_moz)||(is_fb)||(is_fx)) {  // 032504 - dmr

   var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;

   if(!(is_moz_ver)) {

       is_moz_ver = agt.indexOf('rv:');

       is_moz_ver = agt.substring(is_moz_ver+3);

       is_paren   = is_moz_ver.indexOf(')');

       is_moz_ver = is_moz_ver.substring(0,is_paren);

   }

   is_minor = is_moz_ver;

   is_major = parseInt(is_moz_ver);

}

var is_fb_ver = is_moz_ver;

var is_fx_ver = is_moz_ver;

if(is_fx && agt.indexOf("firefox/")>0){

	is_fx_ver = parseInt(agt.substring(agt.indexOf("firefox/")+8))

}
 

var is_fx2up = (is_fx && is_fx_ver >= 2);
 

var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)

            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)

            && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)

            && (!is_khtml) && (!(is_moz)) && (!is_fb) && (!is_fx));
 

// Netscape6 is mozilla/5 + Netscape6/6.0!!!

// Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0

// Changed this to use navigator.vendor/vendorSub - dmr 060502   

// var nav6Pos = agt.indexOf('netscape6');

// if (nav6Pos !=-1) {

if ((navigator.vendor)&&

    ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&

    (is_nav)) {

   is_major = parseInt(navigator.vendorSub);

   // here we need is_minor as a valid float for testing. We'll

   // revert to the actual content before printing the result. 

   is_minor = parseFloat(navigator.vendorSub);

}
 

var is_nav2 = (is_nav && (is_major == 2));

var is_nav3 = (is_nav && (is_major == 3));

var is_nav4 = (is_nav && (is_major == 4));

var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for

                                            // consistency - dmr, 011001

var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||

                      (agt.indexOf("; nav") != -1)) );
 

var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp

var is_nav6up = (is_nav && is_minor >= 6) // new 010118 mhp
 

var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6

var is_nav5up = (is_nav && is_minor >= 5);
 

var is_nav7   = (is_nav && is_major == 7);

var is_nav7up = (is_nav && is_minor >= 7);

var is_nav71up = (is_nav && is_minor >= 7.1);

var is_nav47 = (is_nav && (agt.indexOf('4.7')!=-1));
 

var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

var is_ie3    = (is_ie && (is_major < 4));

var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );

var is_ie4up  = (is_ie && (is_major >= 4));

var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );

var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));

var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);

var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);

var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );

var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

var is_ie7    = (is_ie && (is_major >= 4) && (agt.indexOf("msie 7.")!=-1) );

var is_ie7up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5 && !is_ie6);
 

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser

// or if this is the first browser window opened.  Thus the

// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

var is_aol   = (agt.indexOf("aol") != -1);

var is_aol3  = (is_aol && is_ie3);

var is_aol4  = (is_aol && is_ie4);

var is_aol5  = (agt.indexOf("aol 5") != -1);

var is_aol6  = (agt.indexOf("aol 6") != -1);
 

var is_opera = (agt.indexOf("opera") != -1);

var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);

var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);

var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);

var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);

var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
 

var is_webtv = (agt.indexOf("webtv") != -1); 
 

var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 

var is_AOLTV = is_TVNavigator;
 

var is_hotjava = (agt.indexOf("hotjava") != -1);

var is_hotjava3 = (is_hotjava && (is_major == 3));

var is_hotjava3up = (is_hotjava && (is_major >= 3));
 

// *** JAVASCRIPT VERSION CHECK ***

var is_js;

if (is_nav2 || is_ie3) is_js = 1.0;

else if (is_nav3) is_js = 1.1;

else if (is_opera5up) is_js = 1.3;

else if (is_opera) is_js = 1.1;

else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;

else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;

else if (is_hotjava3up) is_js = 1.4;

else if (is_nav6 || is_gecko) is_js = 1.5;

// NOTE: In the future, update this code when newer versions of JS

// are released. For now, we try to provide some upward compatibility

// so that future versions of Nav and IE will show they are at

// *least* JS 1.x capable. Always check for JS version compatibility

// with > or >=.

else if (is_nav6up) is_js = 1.5;

// NOTE: ie5up on mac is 1.4

else if (is_ie5up) is_js = 1.3
 

// HACK: no idea for other browsers; always check for JS version with > or >=

else is_js = 0.0;
 
 

// *** PLATFORM ***

var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );

// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all

//        Win32, so you can't distinguish between Win95 and WinNT.

var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));
 

// is this a 16 bit compiled version?

var is_win16 = ((agt.indexOf("win16")!=-1) || 

           (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 

           (agt.indexOf("windows 16-bit")!=-1) );  
 

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||

                (agt.indexOf("windows 16-bit")!=-1));
 

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));

var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));

var is_winxp = ((agt.indexOf("windows nt 5.1")!=-1));

var is_winvista = ((agt.indexOf("windows nt 6.0")!=-1));
 

// NOTE: Reliable detection of Win98 may not be possible. It appears that:

//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.

//       - On Mercury client, the 32-bit version will return "Win98", but

//         the 16-bit version running on Win98 will still return "Win95".

var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));

var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));

var is_win32 = (is_win95 || is_winnt || is_win98 || 

                ((is_major >= 4) && (navigator.platform == "Win32")) ||

                (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));
 

var is_os2   = ((agt.indexOf("os/2")!=-1) || 

                (navigator.appVersion.indexOf("OS/2")!=-1) ||   

                (agt.indexOf("ibm-webexplorer")!=-1));
 

var is_mac    = (agt.indexOf("mac")!=-1);

// hack ie5 js version for mac

if (is_mac && is_ie5up) is_js = 1.4;

var is_macosx = (is_mac && (agt.indexOf("mac os x")!=-1)); 

 var is_macosx3 = is_macosx;//(is_macosx && (agt.indexOf("10.3")!=-1));  //ONLY Mac OSX 10.3 version is supported
 

var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 

                           (agt.indexOf("68000")!=-1)));

var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 

                            (agt.indexOf("powerpc")!=-1)));
 

var is_sun   = (agt.indexOf("sunos")!=-1);

var is_sun4  = (agt.indexOf("sunos 4")!=-1);

var is_sun5  = (agt.indexOf("sunos 5")!=-1);

var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));

var is_irix  = (agt.indexOf("irix") !=-1);    // SGI

var is_irix5 = (agt.indexOf("irix 5") !=-1);

var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));

var is_hpux  = (agt.indexOf("hp-ux")!=-1);

var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));

var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));

var is_aix   = (agt.indexOf("aix") !=-1);      // IBM

var is_aix1  = (agt.indexOf("aix 1") !=-1);    

var is_aix2  = (agt.indexOf("aix 2") !=-1);    

var is_aix3  = (agt.indexOf("aix 3") !=-1);    

var is_aix4  = (agt.indexOf("aix 4") !=-1);    

var is_linux = (agt.indexOf("inux")!=-1);

var is_linuxredhat9 = (agt.indexOf("redhat-linux-9")!=-1);
 

var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);

var is_unixware = (agt.indexOf("unix_system_v")!=-1); 

var is_mpras    = (agt.indexOf("ncr")!=-1); 

var is_reliant  = (agt.indexOf("reliantunix")!=-1);

var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 

       (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 

       (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 

var is_sinix = (agt.indexOf("sinix")!=-1);

var is_freebsd = (agt.indexOf("freebsd")!=-1);

var is_bsd = (agt.indexOf("bsd")!=-1);

var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || 

             is_sco ||is_unixware || is_mpras || is_reliant || 

             is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
 
 

function isFireFox(){

	return is_fx;

}

	
 

function hasValidOS(){

	return is_win || is_macosx || is_linux

}
 

function hasValidBrowser(){

	return is_ie6up || is_fx2up || is_safari2up

}
 

function hasValidOSBrowser(){

	if(hasValidOS() &&  hasValidBrowser()){

		if(

			(is_win && (is_ie6up || is_fx2up)) ||

			(is_macosx && (is_safari2up || is_fx2up)) ||

			(is_linux && is_fx2up)

		){

			return true;

		}

	}

	

	return false;

}
 

function getOSName(){

	if(is_win){

		return "win"

	} else if(is_macosx){

		return "mac"

	} else if(is_linux){

		return "lnx"

	}

}
 

function getBrowserType(){

	if(is_ie){

		return "ie"

	} else if(is_fx){

		return "fx"

	} else if(is_safari){

		return "sf"

	}

}
 

function getBrowserVersion(){

	if(is_fx){

		return is_fx_ver

	} else {

		return is_safari_ver

	}

	

	return is_major

}
 
 

function getOSBrowserName(){

	var returnString=""

	var os = getOSName()

	var browser = getBrowserType()

	

	if(os=="win"){

		returnString = "Windows"

	} else if(os=="mac"){

		returnString = "Mac"

	} else if(os=="lnx"){

		returnString = "Linux"

	}

	

	if(returnString!=""){

		if(browser=="ie"){

			returnString += " with " + "Internet Explorer"

		} else if(browser=="fx"){

			returnString += " with " + "Firefox"

		} else if(browser=="sf"){

			returnString += " with " + "Safari"

		}

	}

	

	return returnString!="" ? returnString : "Not Supported"

}
 

/* COOKIE DETECTION */
 

var vshowTestCookie = objCookieUtils.getCookieValue("vshow-test-cookie")
 

function isCookieEnabled(){

	return (vshowTestCookie == "test")

}
 

/* MEDIA PLAYER DETECTION */
 

var detectableWithVB = false;
 

// Here we write out the VBScript block for MSIE Windows

if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {

    document.writeln('<script language="VBscript">');
 

    document.writeln('\'do a one-time test for a version of VBScript that can handle this code');

    document.writeln('detectableWithVB = False');

    document.writeln('If ScriptEngineMajorVersion >= 2 then');

    document.writeln('  detectableWithVB = True');

    document.writeln('End If');
 

    document.writeln('\'this next function will detect most plugins');

    document.writeln('Function detectActiveXControl(activeXControlName)');

    document.writeln('  on error resume next');

    document.writeln('  detectActiveXControl = False');

    document.writeln('  If detectableWithVB Then');

    document.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');

    document.writeln('  End If');

    document.writeln('End Function');

	

	document.writeln('Function getRealPlayerVersion()');

    document.writeln('  on error resume next');

    document.writeln('  getRealPlayerVersion = False');

    document.writeln('  If detectableWithVB Then');

	document.writeln('		set rpo = CreateObject("rmocx.RealPlayer G2 Control")')

	document.writeln('		If IsObject(rpo) then')

    document.writeln('      	getRealPlayerVersion = rpo.GetVersionInfo()');

	document.writeln('		End If')

    document.writeln('  End If');

    document.writeln('End Function');

	

	

	document.writeln('Function getWMPlayerVersion()');

    document.writeln('  on error resume next');

    document.writeln('  getWMPlayerVersion = False');

    document.writeln('  If detectableWithVB Then');

	document.writeln('		set rpo = CreateObject("WMPlayer.OCX.7")')

	document.writeln('		If IsObject(rpo) then')

    document.writeln('      	getWMPlayerVersion = rpo.versionInfo');

	document.writeln('		End If')

    document.writeln('  End If');

    document.writeln('End Function');
 

    document.writeln('</scr' + 'ipt>');

}

	

function detectReal() {

    pluginFound = detectPlugin('RealPlayer');

    // if not found, try to detect with VisualBasic

    if(!pluginFound && detectableWithVB) {

	pluginFound = (detectActiveXControl('rmocx.RealPlayer G2 Control') ||

		       detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') ||

		       detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)'));

    }	

	//alert("detectReal.pluginFound: " + pluginFound)

	

	return pluginFound;

}
 

function detectWindowsMedia() {

    pluginFound = detectPlugin('Windows Media Player');

    // if not found, try to detect with VisualBasic

    if(!pluginFound && detectableWithVB) {

	pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1');

    }

	//alert("detectWindowsMedia.pluginFound: " + pluginFound);

	

	return pluginFound;

}
 

function detectPlugin() {

    // allow for multiple checks in a single pass

    var daPlugins = detectPlugin.arguments;

    // consider pluginFound to be false until proven true

    var pluginFound = false;

    // if plugins array is there and not fake

    if (navigator.plugins && navigator.plugins.length > 0) {

	var pluginsArrayLength = navigator.plugins.length;

	// for each plugin...

	for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {

	    // loop through all desired names and check each against the current plugin name

	    var numFound = 0;

	    for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {

		// if desired plugin name is found in either plugin name or description

		if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) || 

		    (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {

		    // this name was found

		    numFound++;

		}   

	    }

	    // now that we have checked all the required names against this one plugin,

	    // if the number we found matches the total number provided then we were successful

	    if(numFound == daPlugins.length) {

		pluginFound = true;

		// if we've found the plugin, we can stop looking through at the rest of the plugins

		break;

	    }

	}

    }

    return pluginFound;

} // detectPlugin
 
 

var realplayerPluginFound = detectReal();

var windowsMediaPlayerPluginFound = detectWindowsMedia();
 

function hasMediaPlayers(){

	return realplayerPluginFound || windowsMediaPlayerPluginFound

}
 

function getRealPlayerBuild(){

	if(detectableWithVB){

		return getRealPlayerVersion()

	}

	

	return ""

}
 

function getWMPlayerBuild(){

	if(detectableWithVB){

		return getWMPlayerVersion()

	}

	

	return ""

}
 
 

/* SCREEN RESOLUTION */
 
 

var screenWidth = window.screen.width;
 

var screenHeight = window.screen.height;

Open in new window

0
 

Author Comment

by:HelderConde
Comment Utility
By all means, this is a very useful script! I do appreciate your help on this!

However, I noticed that there seems to be no Speed/Bandwidth nor Silverlight analysis...

I'll certainly assign points to mfhorizon, but I'm wondering if these two non-included items can also be included in such a script...

Thanks in advance,

Helder Conde
0
 

Author Comment

by:HelderConde
Comment Utility
Hi,

I've just found a page that might lead me in the direction of finding a "bandwidth" testing:

http://phaster.com/golden_hill_free_web/ghfw_connection_speed.shtml
Now, apparently only Silverlight testing is still missing...

Helder Conde
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 5

Assisted Solution

by:mfhorizon
mfhorizon earned 500 total points
Comment Utility
Hi HelderConde,
This link may give you what you are looking for Silverlight check.
          http://msdn.microsoft.com/en-us/library/cc265155(VS.95).aspx
You need to copy the Silverlight.js and refer in the same way in your code.

Let me know if it works.

Regards
0
 

Author Closing Comment

by:HelderConde
Comment Utility
mhorizon,

Thanks so much for your ideas and for helping me with this. Since I won't be able to deploy this too soon, I've closed the thread and assigned the points.

Besides, I don't see a reason why these ideas should not work.

So, again, thanks a lot! It was very helpful, indeed.

Best regards,

Helder Conde
0
 
LVL 5

Expert Comment

by:mfhorizon
Comment Utility
Thanks for your complements!
Regards,
Kashif Abbas
MeAndSystems.com
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Online collaboration can help businesses be more efficient, help employees grow their skills and foster a team environment.
In this article, you will read about the trends across the human resources departments for the upcoming year. Some of them include improving employee experience, adopting new technologies, using HR software to its full extent, and integrating artifi…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now