Search

CRM4: Replacing the content of an IFRAME

If you really want to do some funny things in your CRM form, you can create an IFRAME serving as a placeholder for your real HTML code. Create an IFRAME in an entity and name it "IFRAME_TEST". In the Onload event put the following code:

crmForm.all.IFRAME_TEST_d.innerHTML ="Some HTML text";

Note the "_d" at the end of IFRAME_TEST. This single line replaces the whole IFRAME element with your own HTML.

Detect CD-ROM Insertion

This C# code snippet detects a CD-ROM being inserted into the CD-ROM drive of a PC. In order to interact with the CD-ROM, you need to use Windows Management Instrumentation (WMI). The .NET Framework provides two sets of classes for interaction with WMI. The System.Management namespace provides access to management information and events about the system. The System.Management.Instrumentation namespace provides classes to expose management information and events of an application to WMI.
using System;
using System.Management;
 
namespace CDROMManagement
{
  class WMIEvent
  {
    static void Main(string[] args)
    {
      WMIEvent we = new WMIEvent();
      ManagementEventWatcher w = null;
      WqlEventQuery q;
      ManagementOperationObserver observer = new
          ManagementOperationObserver();
 
      // Bind to local machine
      ConnectionOptions opt = new ConnectionOptions();
      opt.EnablePrivileges = true; //sets required privilege
      ManagementScope scope = new ManagementScope( "root\\CIMV2", opt );
 
      try
      {
        q = new WqlEventQuery();
        q.EventClassName = "__InstanceModificationEvent";
        q.WithinInterval = new TimeSpan( 0, 0, 1 );
 
        // DriveType - 5: CDROM
        q.Condition = @"TargetInstance ISA 'Win32_LogicalDisk' and
            TargetInstance.DriveType = 5";
        w = new ManagementEventWatcher( scope, q );
 
        // register async. event handler
        w.EventArrived += new EventArrivedEventHandler( we.CDREventArrived );
        w.Start();
 
        // Do something usefull,block thread for testing
        Console.ReadLine();
      }
      catch( Exception e )
      {
        Console.WriteLine( e.Message );
      }
      finally
      {
        w.Stop();
      }
    }
 
    // Dump all properties
    public void CDREventArrived(object sender, EventArrivedEventArgs e)
    {
      // Get the Event object and display it
      PropertyData pd = e.NewEvent.Properties["TargetInstance"];
 
      if (pd != null)
      {
        ManagementBaseObject mbo = pd.Value as ManagementBaseObject;
 
        // if CD removed VolumeName == null
        if (mbo.Properties["VolumeName"].Value != null)
        {
          Console.WriteLine("CD has been inserted");
        }
        else
        {
          Console.WriteLine("CD has been ejected");
        }
      }
    }
  }
}

WMI:Get Domain Name

WMI provides users with information about the status of local or remote computer systems. It also supports such actions as the configuration of security settings, setting and changing system properties, setting and changing permissions for authorized users and user groups, assigning and changing drive labels, scheduling processes to run at specific times, backing up the object repository, and enabling or disabling error logging