Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Dsalomon

#41
gracias por corregirlo... solo puse el codigo anterior como referencia... pero ahora estoy en el codigo tuyo...

probare nuevamente en una maquina virtual... buena idea
#42
aqui dejo hasta donde iva estudiando tus anteriores codigos...
pero como te das cuenta todo depende de un proceso BSPLAYER... y no hay instruccion de play, pausa ni nada... es una burda imitacion del tuyo... ja ja


Código (dos) [Seleccionar]
@echo off
::set define el proceso con una letra::
:: variables de los programas para resumir::
set Bs=bsplayer.exe
set W=Winamp.exe
set Dsl=Dslogo.exe
set DsC=dsclock.exe

::buscar el proceso Bsplayer y si lo encuentra cierre el proceso Dslogo y Dsclock::
:repetir
tasklist | find "%Bs%" && taskkill /f /im %Dsl%
tasklist | find "%Bs%" && taskkill /f /im %Dsc%
tasklist | find "%Bs%" >nul
if %Errorlevel% == 1 (START /D "%Programfiles%\DS Clock\" dsclock.exe)
if %Errorlevel% == 1 (FOR /R %%_ in (*DsLogo.exe) do ("%%_"))
ping -n 05 localhost>nul & goto :repetir

pause
#43
preliminarmente lo he corrido pero solo al ejecutar el batch este se cierra... sin mas ni mas, y no hace nada...

con esto he recontraaprendido mucho... siempre te pido si nos puedes explicar las lineas para comprender mejor su funcionamiento...
#44
que hago si no uso Windows 7

yo uso XP Sp3 tambien...

para esperar

Código (dos) [Seleccionar]
SET WAIT=2000
Echo wscript.Sleep %WAIT%


O como usar

Código (dos) [Seleccionar]
ping -n 05 localhost>nul


por ejemplo aqui tengo un exctracto de codigo en donde

1. le digo busque el proceso de VIDEOPLAYER o sea "proceso"

2. y sino lo encuentra ejecute el programa Ds clock...

3. Espere a que carque un proceso antes de ejecutar el otro

4. si lo encuentra no haga nada

5. haga un Loop por si en cualquier momento se cierra el VIDEOPLAYER muestre el reloj



pero el problema es que el programa Ds Clock carga rapido y el otro carga lento

Código (dos) [Seleccionar]
set proceso=VIDEOPLAYER.exe

tasklist | find "%proceso%" >nul
if %Errorlevel% == 1 (START /D "%Programfiles%\DS Clock\" dsclock.exe)


#45
viendo otros codigos de por alli logre hacer esto que es casi el 40% de lo que quiero hacer:

Código (dos) [Seleccionar]
@echo off

::set define el proceso con una letra::

:repetir
set w=bsplayer.exe
set Dsl=Dslogo.exe

::buscar el proceso Bsplayer y si lo encuentra cierre el proceso Dslogo::

tasklist | find "%w%" && taskkill /f /im %Dsl% | Ping -n localhost >nul & goto :repetir



::Continuara por que todavia me faltan agregar mas programas juntos ::
exit
#46
Hoy en día dirijo un pequeño pero prometedor proyecto de un canal de TV local, la necesidad de mejorar cada día me ha llevado a crear una serie de herramientas, personalizadas en conjunto con algunas ya existentes, para lograr mi objetivo, mi idea que con los años y ayuda de expertos he ido formando funciona de la siguiente manera:

1. Utilizo Principalmente Winamp (Winamp.exe) para tirar mis videos, películas, etc, debido a que esta aplicación recibe una gran serie de complementos, plugins, comandos, etc.

2.   Como segundo reproductor utilizo otro mas que soporta casi igual o diferente tipo de comandos Bsplayer (Bsplayer.exe) pero el uso especifico es reproducir unplay list con jingles o anuncios

3.   Utilizo un software llamado Ds clock para mostrar la hora en la pantalla (Dsclock.exe)

4.   Y otro para mostrar logotipos llamado Desktop Logo (DsLogo.exe)

5.   Y finalmente otra aplicación de pago llamada TextTcker (Barra.exe)  para el scrool text...

Bueno  dirán que quiere decir con esto, además qye tiene que ver con programación... XD...

Bueno aquí entra lo poco que he implementado... pero hoy por hoy me doy cuenta que necesito saber algo de programación para hacer funcionar todo esto

Para evitar abrir programas por programas cree una pequeña línea de comandos DOS o batch y uno o fusiono las 2 aplicaciones graficas o informativas

Ds Clock (Dsclock.exe)+ Desktop logo (DsLogo.exe) = LOGO Y HORA.bat o compilado .exe

Los scrips anteriores que use son estos, pero ya me están siendo obsoletos o incómodos para mi objetivo por lo cual tratare de compilar uno mejor


Así:

Código (dos) [Seleccionar]

@echo off
START /D "X:\Disco\Programa\Desktop Logo 1" DesktopLogo.exe
ping -n 5 localhost>nul
START /D "C:\Archivos de programa\DS Clock\" dsclock.exe
Exit


o con este otros 2 que me acaban de facilitar
Código (dos) [Seleccionar]

@echo off
FOR /R %%_ in (*DsLogo.exe) do ("%%_")


No sé pero no los pude unir  así que los hice por aparte y después los compile juntos...
Código (dos) [Seleccionar]

@echo off
START /D "%PROGRAMFILES%\DS Clock" dsclock.exe
exit



Para hacerlos desaparecer o quitarlos he usado el comando Batch Kill process

Código (dos) [Seleccionar]

TASKKILL /IM Desktop logo1.exe /F >nul
TASKKILL /IM dsclock.exe /F >nul
TASKKILL /IM TxtTick.exe /F >nul
exit


Pero queda el molesto icono en el Systray que muestra los procesos abiertos.
Como se darán cuenta programar esto es sencillo pero me ha resultado incomodo en algún modo...

Que busco hacer ahora...

1 necesito hacer un script que otra vez el llamado de las aplicaciones graficas pero que corra únicamente si el proceso Winamp está corriendo o activo y si detecta el proceso Bsplayer se cierre:
•   Ds clock
•   DsLogo
•   Barra ( si esta activa y es opcional)


presentación de los intentos de fusionar mi idea
SCRIPT LOGO Y HORA AVANZADO.BAT

Código (dos) [Seleccionar]

@echo off
TASKLIST /FI "winamp.exe " | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 Ping -n 5 localhost >nul & goto  START /D "C:\Archivos de programa\DS Clock\" dsclock.exe & FOR /R %%_ in (*DsLogo.exe) do ("%%_") & Ping -n 5 localhost >nul & goto
IF NOT %ERRORLEVEL% LEQ 0 TASKKILL /IM DsLogo.exe /F >nul & TASKKILL /IM dsclock.exe /F >nul
TASKKILL /IM TxtTick.exe /F >nul do ("%%_") & Ping -n 5 localhost >nul & goto


Pero no se cómo incluir este codigo VB:

ejemplo de codigo VB No. 1

Código (vb) [Seleccionar]
Select Case Status
       Case 1
          WinAMP_GetStatus = "PLAYING"
       Case 3
          WinAMP_GetStatus = "PAUSED"
       Case Else
          WinAMP_GetStatus = "STOPPED"
    End Select




Ejemplo de codigo VB   numero 2:

Código (vb) [Seleccionar]
Function WinAMP_GetStatus() As String

    '----------------------------------------------------------'
    'Emula la condicion de Winamo: Play, Pausa y Detener'
     'Retrieves the status of WinAMP: PLAYING, PAUSED or STOPPED'
    '----------------------------------------------------------'

    Dim Status As Long
    Dim i As Long

    If hWndWinAMP = 0 Then
       MsgBox "WinAMP window not found yet...", vbOKOnly + vbCritical, "WinAMP Not Found"
       Exit Function
    End If

    Status = SendMessage(hWndWinAMP, WM_USER, 0, WA_GETSTATUS)
   
    Select Case Status
       Case 1
          WinAMP_GetStatus = "PLAYING"
       Case 3
          WinAMP_GetStatus = "PAUSED"
       Case Else
          WinAMP_GetStatus = "STOPPED"
    End Select

End Function



Algo así:


Citar┌─────────┐    
   SI
   Winamp está en Play 
↓   Ejecute el Script: 
   Abrir
        1. Ds clock
        2. DsLogo


└─   
┌─   Pero

   Si el proceso Bsplayer .exe  está ejecutándose o Winamp está en pausa    
   
   Ejecute el Script: 
↓   Cerrar los programas
   1. Ds clock
   2. DsLogo
   3. Barra


   FIN
└─────────┘


Que haría ahora compilaría en un solo script el abrir el logo y la hora si se cumplen determinadas acciones, eso me ahorraría mucho trabajo de tareas programadas...
Agradeceré cualquier ayuda.

Saludos desde Guatemala.

Dsalomon.
#47
teacher:  todo se ejecuta correctamente pero la ventana del DOS queda abierta... como podria solucionar esto...

tambien pregunto como hago para que borre en automatico el archivo temporal que crea...?


Gracias por tu ayuda hasta ahora todo va marchando bien gracias a tu intervencion...
#48
¿Teacher se puede especificar que ventana solo por el nombre de la misma para minimizar?


creo que entendi asi:

1.   Le dice que tiene que esperar a cargar la aplicación "MIPROGRAMA.exe"

2.   Busca los archivos que se llamen "MIPROGRAMA.exe" dentro de las carpetas y subcarpetas y guarda el nombre del archivo en una variable

3.   Inicia la consola de Windows en la misma ventana e ejecuta lo que encontró y guardo en la variable %%_ y lo inicia, o sea corre el programa deseado

4.   Después en código le dice que espere

5.   Después crea un código VBS

6.   Envía las teclas Alt+espacio+N  (%% N) No entiendo bien pero pareciera %%  que son 2 veces ALT

7.   Envía lo que se escribió a un archivo temporal llamado Sendkeys.vbs

8.   En la misma ventana de consola llama al Script Sendkeys.vbs


y si quisiera que en lugar de ALT+barra+N fuere Control+N.... (para otra aplicacion)

por que probe asi

"%^( N)"

y asi

"^( N)"


pero no me funciono

#49
eres la ley... bueno el codigo...
perdona la insistencia me podrias explicar como personalizar el VBS, la verdad no tengo experincia con ese lenguaje... pero me gustaria saber como decirle que teclas exactamente corra para poder decirle que haga mas cosas, ademas me gustaria quitar el mensaje de que el archivo no fuen encontrado, por si muevo a otra ubicacion el batch... muchas gracias... por tu tiempo y corrección, seguimos aprendiendo...
#50
hol amigos... les saludo desde Guatemala... la verad es que estoy varado en una labor

estoy armando un proyecto que va asi:


1. un script que busque en la carpeta y subcarpeta un archivo ejecutable en donde este... no en C: u otra unidad...
2. correr este ejecutable
3. minimizar el programa con las teclas Alt+Espacio+N (por que este programa no obedece las opciones de iniciar minimizado /m)


probe asi pero no doy con la linea adecuada:



@echo off
%Cd%
for /d /r %%_ in (*) do (
if exist "%%_\Barra.exe" (
Start Barra.exe
)
)
exit



y tambien se me ocurrea algo mas simple:



@echo off
START /D  /S Barra.exe
exit


el codigo para correr Alt+Espacio+N no lo encuentro...  :-(


agradecere cualquier sugerencia...