Como criar uma caixa de msg de contagem regressiva atrasada, que aciona o arquivo bat
Olá, estou tentando criar uma caixa de mensagem com um botão "ATRASO" Se o usuário não pressionar o botão Atraso, o script iniciará um arquivo em lotes (ou comando)
Portanto, deve ser assim:
Olá, usuário O seu administrador solicitou que você saia deste aplicativo após o trabalho. Detectamos que você ainda está usando o programa. Pressione Atraso se você ainda estiver em sua máquina.
Idealmente, eu gostaria que ele detectasse quando um determinado programa está ativo e só seja ativado se for
obrigado
Aqui está a versão final
@if (@CodeSection == @Batch) @then
@echo off
setlocal
for /f %%I in ('forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo 0x07"') do set "beep=%%I"
set /P "=%beep%"<NUL
set /P "=%beep%"<NUL
set /P "=%beep%"<NUL
setlocal
set "task=agent.exe"
set "timeout=120"
rem // Is %task% running?
tasklist /fi "imagename eq %task%" | find /i "%task%" >NUL && (
rem // Re-launch script with JScript interpreter
wscript /e:JScript /nologo "%~f0" %timeout% || (
rem // If timeout or user hits No, kill %task%
taskkill /im "%task%" /f
)
)
rem // End main runtime
goto :EOF
rem // Begin JScript portion
@end
var osh = WSH.CreateObject('WScript.Shell'),
nag = 'Greetings! Your administrator has requested you to log out of Touchstar '
+ 'after work. It appears you are still using it.'
+ ' If you are still here, Press Yes to continue working.\n\n'
+ 'Otherwise, press no to close touchstar.'
+ 'Touchstar will close automatically in less than ' + WSH.Arguments(0) + ' seconds.';
popup = osh.Popup(nag, WSH.Arguments(0), 'Are you still here?', 0x4 + 0x20 + 0x1000);
WSH.Quit(popup - 6);
Obrigado a todos que ajudaram a criar isso (grande mensagem para Rojo) e a todos que responderam.
Denslat