10.7. Llamadas al sistema
Si hay algo que no sepamos o podamos hacer, pero que alguna utilidad del sistema operativo sí es capaz de hacer por nosotros, podemos hacer que ella trabaje por nosotros. La forma de llamar a otras órdenes del sistema operativo (incluso programas externos de casi cualquier tipo) es creando un nuevo proceso con "Process.Start". Por ejemplo, podríamos lanzar el bloc de notas de Windows con:
Process proc = Process.Start("notepad.exe");
En los actuales sistemas operativos multitarea se da por sentado que no es necesario esperar a que termine otra la tarea, sino que nuestro programa puede proseguir. Si aun así, queremos esperar a que se complete la otra tarea, lo conseguiríamos con "WaitForExit", añadiendo esta segunda línea:
proc.WaitForExit();
10.8. Datos sobre "el entorno"
La clase "Environment" nos sirve para acceder a información sobre el sistema: unidades de disco disponibles, directorio actual, versión del sistema operativo y de la plataforma .Net, nombre de usuario y máquina, carácter o caracteres que se usan para avanzar de línea, etc:
string avanceLinea = Environment.NewLine; Console.WriteLine("Directorio actual: {0}", Environment.CurrentDirectory); Console.WriteLine("Nombre de la máquina: {0}", Environment.MachineName); Console.WriteLine("Nombre de usuario: {0}", Environment.UserName); Console.WriteLine("Dominio: {0}", Environment.UserDomainName); Console.WriteLine("Código de salida del programa anterior: {0}", Environment.ExitCode); Console.WriteLine("Linea de comandos: {0}", Environment.CommandLine); Console.WriteLine("Versión del S.O.: {0}", System.Convert.ToString(Environment.OSVersion)); Console.WriteLine("Version de .Net: {0}", Environment.Version.ToString()); String[] discos = Environment.GetLogicalDrives(); Console.WriteLine("Unidades lógicas: {0}", String.Join(", ", discos)); Console.WriteLine("Carpeta de sistema: {0}", Environment.GetFolderPath(Environment.SpecialFolder.System));