Environment Class
Provides information about, and means to manipulate, the current environment and platform. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() ![]() | CommandLine | Gets the command line for this process. |
![]() ![]() | CurrentDirectory | Gets or sets the fully qualified path of the current working directory. |
![]() ![]() | CurrentManagedThreadId | Gets a unique identifier for the current managed thread. |
![]() ![]() | ExitCode | Gets or sets the exit code of the process. |
![]() ![]() | HasShutdownStarted | Gets a value that indicates whether the current application domain is being unloaded or the common language runtime (CLR) is shutting down. |
![]() ![]() | Is64BitOperatingSystem | Determines whether the current operating system is a 64-bit operating system. |
![]() ![]() | Is64BitProcess | Determines whether the current process is a 64-bit process. |
![]() ![]() | MachineName | Gets the NetBIOS name of this local computer. |
![]() ![]() | NewLine | Gets the newline string defined for this environment. |
![]() ![]() | OSVersion | Gets an OperatingSystem object that contains the current platform identifier and version number. |
![]() ![]() | ProcessorCount | Gets the number of processors on the current machine. |
![]() ![]() | StackTrace | Gets current stack trace information. |
![]() ![]() | SystemDirectory | Gets the fully qualified path of the system directory. |
![]() ![]() | SystemPageSize | Gets the number of bytes in the operating system's memory page. |
![]() ![]() | TickCount | Gets the number of milliseconds elapsed since the system started. |
![]() ![]() | UserDomainName | Gets the network domain name associated with the current user. |
![]() ![]() | UserInteractive | Gets a value indicating whether the current process is running in user interactive mode. |
![]() ![]() | UserName | Gets the user name of the person who is currently logged on to the Windows operating system. |
![]() ![]() | Version | Gets a Version object that describes the major, minor, build, and revision numbers of the common language runtime. |
![]() ![]() | WorkingSet | Gets the amount of physical memory mapped to the process context. |
| Name | Description | |
|---|---|---|
![]() ![]() | Exit(Int32) | Terminates this process and returns an exit code to the operating system. |
![]() ![]() | ExpandEnvironmentVariables(String^) | Replaces the name of each environment variable embedded in the specified string with the string equivalent of the value of the variable, then returns the resulting string. |
![]() ![]() | FailFast(String^) | Immediately terminates a process after writing a message to the Windows Application event log, and then includes the message in error reporting to Microsoft. |
![]() ![]() | FailFast(String^, Exception^) | Immediately terminates a process after writing a message to the Windows Application event log, and then includes the message and exception information in error reporting to Microsoft. |
![]() ![]() | GetCommandLineArgs() | Returns a string array containing the command-line arguments for the current process. |
![]() ![]() | GetEnvironmentVariable(String^) | Retrieves the value of an environment variable from the current process. |
![]() ![]() | GetEnvironmentVariable(String^, EnvironmentVariableTarget) | Retrieves the value of an environment variable from the current process or from the Windows operating system registry key for the current user or local machine. |
![]() ![]() | GetEnvironmentVariables() | Retrieves all environment variable names and their values from the current process. |
![]() ![]() | GetEnvironmentVariables(EnvironmentVariableTarget) | Retrieves all environment variable names and their values from the current process, or from the Windows operating system registry key for the current user or local machine. |
![]() ![]() | GetFolderPath(Environment::SpecialFolder) | Gets the path to the system special folder that is identified by the specified enumeration. |
![]() ![]() | GetFolderPath(Environment::SpecialFolder, Environment::SpecialFolderOption) | Gets the path to the system special folder that is identified by the specified enumeration, and uses a specified option for accessing special folders. |
![]() ![]() | GetLogicalDrives() | Returns an array of string containing the names of the logical drives on the current computer. |
![]() ![]() | SetEnvironmentVariable(String^, String^) | Creates, modifies, or deletes an environment variable stored in the current process. |
![]() ![]() | SetEnvironmentVariable(String^, String^, EnvironmentVariableTarget) | Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine. |
Use the Environment class to retrieve information such as command-line arguments, the exit code, environment variable settings, contents of the call stack, time since last system boot, and the version of the common language runtime.
The following example demonstrates displays a list of information about the current environment.
// Sample for Environment class summary using namespace System; using namespace System::Collections; int main() { String^ str; String^ nl = Environment::NewLine; // Console::WriteLine(); Console::WriteLine( "-- Environment members --" ); // Invoke this sample with an arbitrary set of command line arguments. Console::WriteLine( "CommandLine: {0}", Environment::CommandLine ); array<String^>^arguments = Environment::GetCommandLineArgs(); Console::WriteLine( "GetCommandLineArgs: {0}", String::Join( ", ", arguments ) ); // <-- Keep this information secure! --> Console::WriteLine( "CurrentDirectory: {0}", Environment::CurrentDirectory ); Console::WriteLine( "ExitCode: {0}", Environment::ExitCode ); Console::WriteLine( "HasShutdownStarted: {0}", Environment::HasShutdownStarted ); // <-- Keep this information secure! --> Console::WriteLine( "MachineName: {0}", Environment::MachineName ); Console::WriteLine( "NewLine: {0} first line {0} second line {0} third line", Environment::NewLine ); Console::WriteLine( "OSVersion: {0}", Environment::OSVersion ); Console::WriteLine( "StackTrace: ' {0}'", Environment::StackTrace ); // <-- Keep this information secure! --> Console::WriteLine( "SystemDirectory: {0}", Environment::SystemDirectory ); Console::WriteLine( "TickCount: {0}", Environment::TickCount ); // <-- Keep this information secure! --> Console::WriteLine( "UserDomainName: {0}", Environment::UserDomainName ); Console::WriteLine( "UserInteractive: {0}", Environment::UserInteractive ); // <-- Keep this information secure! --> Console::WriteLine( "UserName: {0}", Environment::UserName ); Console::WriteLine( "Version: {0}", Environment::Version ); Console::WriteLine( "WorkingSet: {0}", Environment::WorkingSet ); // No example for Exit(exitCode) because doing so would terminate this example. // <-- Keep this information secure! --> String^ query = "My system drive is %SystemDrive% and my system root is %SystemRoot%"; str = Environment::ExpandEnvironmentVariables( query ); Console::WriteLine( "ExpandEnvironmentVariables: {0} {1}", nl, str ); Console::WriteLine( "GetEnvironmentVariable: {0} My temporary directory is {1}.", nl, Environment::GetEnvironmentVariable( "TEMP" ) ); Console::WriteLine( "GetEnvironmentVariables: " ); IDictionary^ environmentVariables = Environment::GetEnvironmentVariables(); IEnumerator^ myEnum = environmentVariables->GetEnumerator(); while ( myEnum->MoveNext() ) { DictionaryEntry^ de = safe_cast<DictionaryEntry^>(myEnum->Current); Console::WriteLine( " {0} = {1}", de->Key, de->Value ); } Console::WriteLine( "GetFolderPath: {0}", Environment::GetFolderPath( Environment::SpecialFolder::System ) ); array<String^>^drives = Environment::GetLogicalDrives(); Console::WriteLine( "GetLogicalDrives: {0}", String::Join( ", ", drives ) ); } /* This example produces results similar to the following: (Any result that is lengthy or reveals information that should remain secure has been omitted and marked S"!---OMITTED---!".) C:\>env0 ARBITRARY TEXT -- Environment members -- CommandLine: env0 ARBITRARY TEXT GetCommandLineArgs: env0, ARBITRARY, TEXT CurrentDirectory: C:\Documents and Settings\!---OMITTED---! ExitCode: 0 HasShutdownStarted: False MachineName: !---OMITTED---! NewLine: first line second line third line OSVersion: Microsoft Windows NT 5.1.2600.0 StackTrace: ' at System::Environment::GetStackTrace(Exception e) at System::Environment::GetStackTrace(Exception e) at System::Environment::get_StackTrace() at Sample::Main()' SystemDirectory: C:\WINNT\System32 TickCount: 17995355 UserDomainName: !---OMITTED---! UserInteractive: True UserName: !---OMITTED---! Version: !---OMITTED---! WorkingSet: 5038080 ExpandEnvironmentVariables: My system drive is C: and my system root is C:\WINNT GetEnvironmentVariable: My temporary directory is C:\DOCUME~1\!---OMITTED---!\LOCALS~1\Temp. GetEnvironmentVariables: !---OMITTED---! GetFolderPath: C:\WINNT\System32 GetLogicalDrives: A:\, C:\, D:\ */
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


