/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// SysInfo.cs -- Demonstrates use of static constructor
//
// Compile this program with the following command line:
// C:>csc SysInfo.cs
//
namespace nsSysInfo
{
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class SysInfo
{
static public void Main()
{
Console.WriteLine ("Current user is " +
clsSystemInfo.User);
Console.WriteLine ("Current Time Zone is " +
clsSystemInfo.TZ);
Console.WriteLine ("Current domain is " +
clsSystemInfo.Domain);
Console.WriteLine ("Current Host is " +
clsSystemInfo.Host);
Console.WriteLine ("Command interpreter is " +
clsSystemInfo.ComSpec);
}
}
class clsSystemInfo
{
private clsSystemInfo () {}
[DllImport ("kernel32.dll")]
static extern public long GetEnvironmentVariable (string name,
byte [] value, long size);
static clsSystemInfo ()
{
m_User = SystemInformation.UserName;
m_Host = SystemInformation.ComputerName;
DateTime now = DateTime.Now;
TimeZone tz = TimeZone.CurrentTimeZone;
m_TimeZone = tz.IsDaylightSavingTime(now)
? tz.DaylightName : tz.StandardName;
m_Domain = SystemInformation.UserDomainName;
byte [] comspec = new byte [256];
if (GetEnvironmentVariable ("COMSPEC", comspec, 256) > 0)
{
foreach (byte ch in comspec)
{
if (ch == 0)
break;
m_ComSpec += (char) ch;
}
}
}
static public string User
{
get
{
return (m_User);
}
}
static public string TZ
{
get
{
return (m_TimeZone);
}
}
static public string Domain
{
get
{
return (m_Domain);
}
}
static public string Host
{
get
{
return (m_Host);
}
}
static public string ComSpec
{
get
{
return (m_ComSpec);
}
}
private static string m_User;
private static string m_TimeZone;
private static string m_Domain;
private static string m_Host;
private static string m_ComSpec;
}
}
|