FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
shellexecute
hola....
Logre ejecutar un comando del DOS con la instrucción, gracias: winexec(pchar('command.com /cipconfig.exe'),sw_shownormal); pero la ventana del DOS desaparece y no deja leer la informacion como hago para que quede alli y se pueda leer. Ademas necesito copiar la informacion que aparece en la ventana del DOS AL EJECUTAR CADA COMANDO, para pegarla en un MEMO dentro de un formulario de delphi Y MOSTRARLA EN ESE FORM. Gracias por toda la ayuda dada hasta el momento, espero que me colaboren con esta nueva inquietud GRACIAS.....ADIOS... |
#2
|
||||
|
||||
Echale un vistazo a http://www.delphi3000.com/articles/article_2112.asp
Quizá tengas que registrarte para leer el artículo pero me parece que es gratuito. Tiene una función: function GetDosOutput(const CommandLine: String): String; a la que le pasas el comando que deseas ejecutar y te devuelve la salida y sin siquiera mostrarte la ventana de ms-dos. A mi me parece que sería lo ideal para lo que quieres pues pones directamente la salida en un memo: Código:
Memo1.Text := GetDosOutput('c:\winnt\system32\ipconfig.exe'); |
#3
|
||||
|
||||
Mira esta idea también:
Código:
implementation {$R *.DFM} function WinExecAndWait32(FileName:String; Visibility : integer):integer; var zAppName:array[0..512] of char; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation; begin StrPCopy(zAppName,FileName); FillChar(StartupInfo,Sizeof(StartupInfo),#0); StartupInfo.cb := Sizeof(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := Visibility; if not CreateProcess(nil,zAppName,nil, nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil, StartupInfo, ProcessInfo) then Result := -1 else begin WaitforSingleObject(ProcessInfo.hProcess,INFINITE); GetExitCodeProcess(ProcessInfo.hProcess,DWORD(Result)); CloseHandle( ProcessInfo.hProcess ); CloseHandle( ProcessInfo.hThread ); end; end; procedure ExecuteDOSCommand( cmdline, logfile: String; hidden: Boolean ); const flags : Array [Boolean] of Integer = (SW_SHOWNORMAL, SW_HIDE); var cmdbuffer: Array [0..MAX_PATH] of Char; cmd: String; begin GetEnvironmentVariable( 'COMSPEC', cmdBUffer, Sizeof(cmdBuffer)); cmd := cmdbuffer + ' /C ' + cmdline + ' > ' + logfile; WinExecAndWait32( cmd, flags[hidden] ); end; procedure TForm1.Button1Click(Sender: TObject); const logfile = 'C:\Dos\output.out'; begin ExecuteDOSCommand( 'dir c:\', logfile , true ); richedit1.lines.loadfromfile( logfile ); end;
__________________
Guía de Estilo de los Foros Cita:
Última edición por marcoszorrilla fecha: 17-04-2004 a las 12:51:44. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|