Cómo utilizar ExitWindowsExec() en VB para ejecutar el archivo de lotes de MS-DOS

Seleccione idioma Seleccione idioma
Id. de artículo: 147806 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

La función ExitWindowsExec() termina de Windows, ejecuta una aplicación MS-DOS especificada y, a continuación, reinicia Windows. La información en este artículo muestra cómo llamar a esta función desde Visual Basic.

Más información

La función ExitWindowsExec() suele utilizarse por programas de instalación para reemplazar componentes de Windows que están activas cuando se ejecuta Windows. Normalmente, puede que desee ejecutar un archivo por lotes de MS-DOS que realiza la copia mientras Windows se apagará temporalmente de archivos. La declaración para ExitWindowsExec() es como sigue:
   ' Place the following declaration on one, single line:

  Private Declare Function ExitWindowsExec Lib "User" (ByVal lpszExe As String,
      ByVal lpszParams As Any) As Integer
				

Primer parámetro: lpszExe $

El primer parámetro para ExitWindowsExec(), lpszExe $, debe ser una cadena que contiene la ruta de acceso completa al archivo ejecutable que desea ejecutar. Esta cadena debe contener no más de 127 caracteres. Para archivos por lotes, necesitará especificar Command.com como el archivo--C:\DOS\COMMAND.COM. Para obtener la ruta de acceso completa en Visual Basic para Command.com, puede utilizar la función de $ entorno:
   lpszExe$ = Environ$("COMSPEC")
				

Para obtener más información sobre la función $ de entorno, consulte la referencia del lenguaje Microsoft Visual Basic o en el menú de Ayuda.

Segundo parámetro: lpszParams $

El segundo parámetro para ExitWindowsExec(), lpszParams $, debe ser una cadena que contiene todos los parámetros necesarios para el archivo ejecutable. Si no hay parámetros son necesarios, pasar un entero largo 0 como 0 &.

Para ejecutar un archivo por lotes, sin embargo, esto es donde se especifica la ruta al archivo por lotes y los parámetros que necesita. Además, deberá anteponer a la cadena con el modificador /c que indica a MS-DOS para invocar una copia de Command.com. Éste es un ejemplo:
   lpszParams$ = "/C C:\DIRNAME\GENERIC.BAT  PARAMETER1 PARAMETER2"
				

El valor devuelto de esta función es False cuando se produce un error la función.

Ejemplo paso a paso

  1. Con el en el Bloc de notas en Windows o editar en MS-DOS, cree un archivo por lotes en el directorio raíz del disco duro denominado C:\RUNIT.BAT. Asígnele el siguiente contenido:
       @echo off
       echo Making Backup of autoexec.bat
       copy c:\autoexec.bat c:\*.bak
       echo Done
    
    						
  2. Inicie un nuevo proyecto en Visual Basic (ALT, F, N). Se creará Form1 de manera predeterminada.
  3. Agregue la siguiente declaración a la sección Declaraciones generales del formulario:
       ' Place the following declaration on one, single line:
    
       Private Declare Function ExitWindowsExec Lib "User" (ByVal lpszExe As String, _
          ByVal lpszParams As Any) As Integer
    
    						
  4. Agregue un botón de comando (Command1) al formulario y coloque el código siguiente en el evento Click().
       Private Sub Command1_Click ()
          sComspec$ = Environ$("COMSPEC")
          ret% = ExitWindowsExec(sComspec$,  "/c c:\runit.bat")
       End Sub
    
    						
  5. Guarde el proyecto (ALT, V, V). A continuación, presione la tecla de F5 para ejecutar el programa. Haga clic en el botón de comando para salir de Windows, ejecutar el archivo por lotes y, a continuación, reinicie Windows.

Propiedades

Id. de artículo: 147806 - Última revisión: jueves, 23 de enero de 2014 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbwndw KB147806 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 147806

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com