Home arrow JavaScript arrow Advanced JavaScript with Internet Explorer: Working with Drives and More

Advanced JavaScript with Internet Explorer: Working with Drives and More

This series mainly concentrates on retrieving system information using JavaScript and displaying the same on a web page. All of the examples in this series can be directly tested by copying and pasting the entire code (of each section) in any text file with the extension .HTM and opening it using Microsoft Internet Explorer (preferably 5.5+).

Author Info:
By: Jagadish Chaterjee
Rating: 5 stars5 stars5 stars5 stars5 stars / 5
March 28, 2006
  1. · Advanced JavaScript with Internet Explorer: Working with Drives and More
  2. · A better approach to retrieving a list of drives using JavaScript
  3. · How to know the number of partitions of each physical drive using JavaScript
  4. · How to learn more information about each partition using JavaScript
  5. · How to list all folder/file information (including sub-folders) using JavaScript
  6. · How to list all folder information for a particular sub-folder using JavaScript

print this article

Advanced JavaScript with Internet Explorer: Working with Drives and More
(Page 1 of 6 )

In general, JavaScript is used mainly for web designing, DHTML and other interactive forms.  Not everyone knows that we can use JavaScript to retrieve system information (supported only with Internet Explorer). 

In fact, JavaScript can connect to any computer (with proper authentication) and retrieve (and modify as well) system information, including the client where the browser is opened.  This gives us the path for implementing a WBEM (Web Based Enterprise Management) strategy.  But, it is a bit difficult to understand everything about WBEM all at once.

In this series, I mainly concentrate on how-to topics for retrieving system information using JavaScript. 

How to retrieve a list of drives using JavaScript

Now, let us try to develop a simple script (JavaScript) which shows the technique for retrieving a list of drives and displaying it on a web page. The entire code for the sample is as follows:

<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD HTML 4.0 Transitional//EN">
            <meta  name="GENERATOR"  content="Microsoft Visual Studio .NET
            <meta  name="vs_targetSchema"
      <script  id=clientEventHandlersJS  language=javascript>

function Button1_onclick() {
      var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
      var service = locator.ConnectServer(".");
      var properties = service.ExecQuery("SELECT * FROM
      var e = new Enumerator (properties);
      for (;!e.atEnd();e.moveNext ())
            var p = e.item ();
            document.write("Drive: " + p.Name + " -> Size: " + p.Size +

            <INPUT  id="Button1"  type="button"  value="Button"
 name="Button1"  language=javascript  onclick="return Button1_onclick()">

Actually, within the above code, the “meta” tag is not necessary.  As I developed the above code using Visual Studio.NET 2003 Enterprise Architect, it was automatically added to provide its full-featured mechanisms. 

The above would automatically list all the drives along with their sizes.  To retrieve drive information, I used a built-in class, “Win32_LogicalDisk.”  The class internally has a lot of properties, methods and events.  But, in the above example we concentrated only on the properties “Name” and “Size” (related to “Win32_LogicalDisk” class).

The “for” loop I used in the above code iterates for every logical drive present in the system and finally retrieves only the properties of that drive.

Another interesting issue to discuss is the following:

      var service = locator.ConnectServer(".");

According to the above statement, it connects to the system where the web page (or browser) is opened.  If you need to connect to other systems, you must specify the name of the system by replacing the dot (“.”) in the above statement.  You can also provide IP if necessary.  It would connect to the other computer if and only if a trusted connection exists between both computers (otherwise we need to provide authentication information as well).

blog comments powered by Disqus

- Project Nashorn to Make Java, JavaScript Wor...
- JavaScript Virus Attacks Tumblr Blogs
- Google Releases Stable Dart Version, JavaScr...
- Khan Academy Unveils New JavaScript Learning...
- Accessing Nitro? There`s an App for That
- JQuery 2.0 Leaving Older IE Versions Behind
- Fastest JavaScript Engine Might Surprise You
- Microsoft Adjusting Chakra for IE 10
- Brendan Eich: We Don`t Need Google Native Cl...
- An Overview of JavaScript Statements
- An Overview of JavaScript Operators
- Overview of JavaScript Variables
- More of the Top jQuery Social Plugins
- The Top jQuery Social Plugins
- More of the Top jQuery Slider Plugins

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials