automatizado de Canal de TV, basado en Batch DOS y VBasic…

Iniciado por Dsalomon, 2 Septiembre 2012, 09:23 AM

0 Miembros y 1 Visitante están viendo este tema.

Dsalomon

Continuando maestro me puedes seguir guiando

No me funcionan las tareas programadas pues me dice que no encuentra el archivo...

Estaba pensando usar esto:

Código (dos) [Seleccionar]
AT 6:45 /interactive start If Not Exist "%UserProfile%\Escritorio\" (Set "DesktopPath=%UserProfile%\Desktop") LISTA1.bsl


me preguntaste ¿Porque usas la pipe |?

lo uso así... por qué probé en una máquina virtual Xp y W7 ultímate... y no corría
Hacia abajo asi que lo pegue asi y funciono...

Código (dos) [Seleccionar]
(FOR /R %%_ in (*DsLogo.exe) do ("%%_")) | (FOR /R %%_ in (*DsLogo2.exe) do ("%%_"))

Además añadí o cambie esta parte: porque no logre que corriera como anteriormente

Código (dos) [Seleccionar]
Tasklist|find /i "Bsplayer.exe"
if %errorlevel%==0 Taskkill /F /T /IM "dsclock.exe"  >NUL 2>&1 |Taskkill /F /T /IM "Dslogo.exe" >NUL 2>&1 | Taskkill /F /T /IM "Dslogo2.exe" >NUL 2>&1 | Taskkill /F /T /IM "TxTicker.exe" >NUL 2>&1 | Call :Winamp_Key "c"



Para que espere  que proceso BSplayer TERMINE de reproducir y se cierre después: Dar PLAY a Winamp, Abrir Dsclock, Abrir Dslogo y Dslogo2 use este código
Pero como dije yo no he utilizado batch más que lo añadí y adpte... pero di me si esta correcto


Código (dos) [Seleccionar]
(
Echo Set WshShell = CreateObject("WScript.Shell"^)
Echo Set oExec = WshShell.Exec("BSplayer"^)
Echo Do While oExec.Status = 0
     Echo WScript.Sleep 100
Echo Loop
Echo WScript.Echo oExec.Status
)>"%TEMP%\BSplayer.vbs"
Start /W wscript "%TEMP%\BSplayer.vbs"
Del /Q "%TEMP%\BSplayer.vbs"
Goto :EOF
)


Aqui estan todas las lineas.

Código (dos) [Seleccionar]
Echo off
AT 6:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 7:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 8:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 9:00 /interactive start "%DesktopPath%" LISTA4.bsl
AT 9:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 10:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 11:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 12:00 /interactive start "%DesktopPath%" LISTA4.bsl
AT 12:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 13:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 14:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 15:00 /interactive start "%DesktopPath%" LISTA4.bsl
AT 15:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 16:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 17:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 18:00 /interactive start "%DesktopPath%" LISTA4.bsl
AT 18:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 19:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 20:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 21:00 /interactive start "%DesktopPath%" LISTA4.bsl
AT 21:45 /interactive start "%DesktopPath%" LISTA1.bsl
AT 22:30 /interactive start "%DesktopPath%" LISTA2.bsl
AT 23:15 /interactive start "%DesktopPath%" LISTA3.bsl
AT 0:00 /interactive start "%DesktopPath%" LISTA4.bsl

@Echo off
START /D "%Programfiles%\Winamp\" winamp.exe
Call :Winamp_Key "x"
START /D "%Programfiles%\DS Clock\" dsclock.exe
(FOR /R %%_ in (*DsLogo.exe) do ("%%_")) | (FOR /R %%_ in (*DsLogo2.exe) do ("%%_"))

:Loop

::[PASO 4] Busque El Proceso BSplayer y al encontrarlo: CERRAR Dsclock.exe, Dslogo.exe, Dslogo2.exe, TextTicker.exe y PAUSE Winamp
@Echo Off
Tasklist|find /i "Bsplayer.exe"
if %errorlevel%==0 Taskkill /F /T /IM "dsclock.exe"  >NUL 2>&1 |Taskkill /F /T /IM "Dslogo.exe" >NUL 2>&1 | Taskkill /F /T /IM "Dslogo2.exe" >NUL 2>&1 | Taskkill /F /T /IM "TxTicker.exe" >NUL 2>&1 | Call :Winamp_Key "c"

::[PASO 5] Esperar  que proceso BSplayer TERMINE de reproducir y se cierre después: Dar PLAY a Winamp, Abrir Dsclock, Abrir Dslogo y Dslogo2
(
Echo Set WshShell = CreateObject("WScript.Shell"^)
Echo Set oExec = WshShell.Exec("BSplayer"^)
Echo Do While oExec.Status = 0
     Echo WScript.Sleep 100
Echo Loop
Echo WScript.Echo oExec.Status
)>"%TEMP%\BSplayer.vbs"
Start /W wscript "%TEMP%\BSplayer.vbs"
Del /Q "%TEMP%\BSplayer.vbs"
Goto :EOF
)
Call :Winamp_Key "x"
START /D "%Programfiles%\DS Clock\" dsclock.exe
(FOR /R %%_ in (*DsLogo.exe) do ("%%_")) | (FOR /R %%_ in (*DsLogo2.exe) do ("%%_"))


:Winamp_Key
:: Hotkeys Winamp:
::
:: c=Pause
:: x=Play
::
If NOT "%~1" EQU "" (
(
Echo Set objShell = WScript.CreateObject("WScript.Shell"^)
Echo Do Until Success = True
Echo     Success = objShell.AppActivate("winamp"^)
Echo     Wscript.Sleep 250
Echo Loop
Echo objShell.SendKeys "%~1"
Echo Wscript.quit
)>"%TEMP%\winamp.vbs"
Start /W wscript "%TEMP%\winamp.vbs"
Del /Q "%TEMP%\Winamp.vbs"
Goto :EOF
)

Ping -n 3 LOCALHOST >NUL

::[PASO 6] repetir hasta Etiqueta 1
Goto :Loop


Eleкtro

Aparte de que la variable de entorno "DesktopPath" no existe, y has cambiado la manera de usar el comando start sin los parámetros correspondientes, ¿porque intentas usar un comando para abrir el archivo cuando puedes abrirlo directamente? (Siempre que lo tengas asociado al bsplayer).

AT 6:45 /NEXT: "%USERPROFILE%\Desktop\LISTA1.bsl"

http://ss64.com/nt/at.html
http://ss64.com/nt/schtasks.html

el trozo del código VBS de "Bsplayer.vbs" está bien, bueno, le sobra el parentesis suelto ) de abajo del todo, pero supongo que arriba del todo hay una linea que no pusiste (If not exist...() entonces ya no sobraría el paréntesis.

Te aconsejo que leas un manual básico... lo necesitas para tu hobby/trabajo y no puedes pasarte la vida preguntando sobre el mismo tema  :xD

saludos