RUN sin ventana de fondo negra

RUN sin ventana de fondo negra

Postby ARCC » Mon Jul 21, 2008 11:39 pm

Buen día para todos...

Que tal amigos, por casualidad saben si es posible ejecutar el mandato RUN sin que salga o aparezca la ventana de fondo negra?.

Ejemplo:

RUN("Dir > C:\dir.txt")
Saludos,

Antonio Castro
Maracaibo - Venezuela
ant_cas@yahoo.com
ARCC
 
Posts: 86
Joined: Sat Jun 24, 2006 4:27 pm
Location: Maracaibo - Zulia - Venezuela

Postby cuatecatl82 » Tue Jul 22, 2008 2:39 pm

Saludos ARCC: :D

Prueba de la Siguiente Manera: :idea:

Code: Select all  Expand view  RUN
//---------------------------//
FUNCTION RunComand()

LOCAL cAccion:= "@ECHO OFF"+CRLF+"Dir > C:\dir.txt"
LOCAL   cFile:= ".\COMANDO.BAT"
LOCAL nHandle:= FCREATE(cFile)


     FWRITE(nHandle, cAccion)
      INKEY(0.2)
     FCLOSE(nHandle)
      INKEY(0.2)
    WaitRun(cFile,0)
      INKEY(0.2) 
     FERASE(cFile)     
     

RETURN nil


A mi me ha funcionado para correr comandos del DOS desde mi aplicacion.
La idea es Crear un archivo .BAT, ejecutarlo y Borrarlo, puedes agregar los comandos que necesites..

Ojala y te pueda servir... :wink:
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Postby ARCC » Thu Jul 24, 2008 4:07 am

Buen día para todos...

Que tal Victor, muchas gracias funciona muy bien pero recuerdo que una vez Antonio Linares colocó un código para utilizar RUN sin la ventana de fondo.

Esta fué la función final que resultó de es tu código con unos muy pequeños retoques.

Code: Select all  Expand view  RUN
//*******######
Function RunCmd( cCmd, cTempFile )
//*******######

  Local nHandle
  Local cFileBAT

  Default cTempFile := GetWinDir() + "\Temp\"

  cFileBAT := cTempFile + "RunCmd.bat"
  nHandle  := FCreate( cFileBAT )

  FWrite( nHandle, "@ECHO OFF" + CRLF + CRLF + cCmd )
  Inkey( 0.2 )

  FClose( nHandle )
  Inkey( 0.2 )

  WaitRun( cFileBAT, 0)
  Inkey( 0.2 )

  FErase( cFileBAT )

Return Nil
Saludos,

Antonio Castro
Maracaibo - Venezuela
ant_cas@yahoo.com
ARCC
 
Posts: 86
Joined: Sat Jun 24, 2006 4:27 pm
Location: Maracaibo - Zulia - Venezuela

Postby Willi Quintana » Thu Jul 24, 2008 2:07 pm

Holas,,
Asi me trabaja ok:
Salu2


Function CapturaPuerto(cRutaLpt, cLptx)
local cOrden

If AT("\\" + Netname(), cRutaLpt) > 0 // para no redundar en el server de impresoras
Return(Nil)
EndIf

cOrden := "net use " + cLptx + " /delete" // eliminamos el asunto
cOrden := "COMMAND.COM /C " + cOrden
WaitRun(cOrden, 0) // ejecutor externo

If !EMPTY(cRutaLpt) .AND. (cLptx = "LPT1" .OR. cLptx = "LPT2" .OR. cLptx = "LPT3")
cOrden := "net use " + cLptx + " " + ALLTRIM(cRutaLpt)
cOrden := "COMMAND.COM /C " + cOrden + " /persistent:yes"
WaitRun(cOrden, 0) // ejecutor externo
EndIf
Return(Nil)
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby ARCC » Thu Jul 24, 2008 8:22 pm

Buen día para todos...

Que tal Willi, bueno tu método funciona y no hay que crear ningún archivo temporal, pero tengo una pequeña duda la cual te o les voy a plantear que no ocurre con el método de Victor.

Así trabaja bien
Code: Select all  Expand view  RUN
WaitRun( "COMMAND.COM /C DIR /A:D /B  C:\DOCUME~1 > C:\DIR.TXT", 0 )


Pero así no, cre el archivo DIR.TXT pero vacio
Code: Select all  Expand view  RUN
WaitRun( 'COMMAND.COM /C DIR /A:D /B "C:\Documents and Settings" > C:\DIR.TXT', 0 )


Será que estoy haciendo algo mal, pero con el método de Victor si funciona bien
Saludos,

Antonio Castro
Maracaibo - Venezuela
ant_cas@yahoo.com
ARCC
 
Posts: 86
Joined: Sat Jun 24, 2006 4:27 pm
Location: Maracaibo - Zulia - Venezuela

Re: RUN sin ventana de fondo negra

Postby FranciscoA » Thu Jul 24, 2008 8:48 pm

ARCC wrote:Buen día para todos...

Que tal amigos, por casualidad saben si es posible ejecutar el mandato RUN sin que salga o aparezca la ventana de fondo negra?.

Ejemplo:

RUN("Dir > C:\dir.txt")





Prueba esto, lo encontré por ahí:

Ej.: Si queremos hacer un archivo ZIP con PKZIP:
oK := WaitRun( "Pkzip.exe A:Respaldo *.dbf" )

Y para cerrar la ventana que se ve al correr la aplicación:
WaitRun( "command.com /c tuprograma", 0 )
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby Willi Quintana » Fri Jul 25, 2008 1:24 am

Si estas con XP prueba asi:
WaitRun( 'CMD.EXE /C DIR /A:D /B "C:\Documents and Settings" > C:\DIR.TXT', 0 )

Salu2
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby ARCC » Fri Jul 25, 2008 2:04 am

Buen día para todos...

Ahora si Willi ya quedo y muy secillo el código.

Code: Select all  Expand view  RUN
//*******######
Function RunCmd( cCmd )
//*******######

  WaitRun( "CMD.EXE /C " + cCmd, 0)

Return Nil
Saludos,

Antonio Castro
Maracaibo - Venezuela
ant_cas@yahoo.com
ARCC
 
Posts: 86
Joined: Sat Jun 24, 2006 4:27 pm
Location: Maracaibo - Zulia - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 34 guests