PDA

Показать полную графическую версию : [решено] таймер


firstarey
25-12-2009, 14:55
приветствую,
написал таймер, но мне не нравиться как он работает, хотя работает
подскажите как это оптимизировать ну или лучшее решение, может кто сталкивался уже
@echo off
Color 0e
:start
cls
Title _=Timer=_
echo ===============================================================================
echo I %date% I
echo ===============================================================================
set Mprompt=x
echo I бЄ®«мЄ® ¬Ё* ¦¤*вм?
set /p Mprompt=I

if /i %Mprompt% GTR 60 goto error else goto next
:next

set BZ=0
set TH=%time:~,2%
set TM=%time:~3,2%
set TS=%time:~6,2%
set /a BZ=%Mprompt%+%TM%
cls
echo ===============================================================================
echo I %date% I
echo ===============================================================================
echo.
echo ⥪г饥 ўаҐ¬п %TH%:%TM%:%TS%

if /i %BZ% GTR 60 (goto var1) else (goto var2)

:var1
set /a H=%BZ%/60
set /a TH=%TH%+%H%
set /a TM=%TM%+%Mprompt%
set /a TM=%TM%-60
echo в*©¬Ґа Ї®бв*ў«Ґ* ** %TH%:%TM%:%TS%

:bud_1
set TH2=%time:~,2%
set TM2=%time:~3,2%
set TS2=%time:~6,2%
if /i %TH2% NEQ %TH% goto bud_1 else goto bud_11
:bud_11
if /i %TM2% NEQ %TM% goto bud_1 else goto bud_111
:bud_111
if /i %TS2% NEQ %TS% goto bud_1 else goto next2

:var2
echo в*©¬Ґа Ї®бв*ў«Ґ* ** %TH%:%BZ%:%TS%

:bud_2
set TH2=%time:~,2%
set TM2=%time:~3,2%
set TS2=%time:~6,2%
if /i %TH2% NEQ %TH% goto bud_2 else goto bud_22
:bud_22
if /i %TM2% NEQ %BZ% goto bud_2 else goto bud_222
:bud_222
if /i %TS2% NEQ %TS% goto bud_2 else goto next2

:next2
start c:\timer\sw ;вот это по идее должно свернуть все окна, незнаю как реализовать- сделал ссылку на ярлык
start /max c:\timer\text.txt
goto end

:error
cls
echo ===============================================================================
echo I %date% I
echo ===============================================================================
echo I Ћ˜?ЃЉЂ: Є®«ЁзҐбвў® ¬Ё*гв *Ґ ¬®¦Ґв Ўлвм Ў®«миҐ 60 !
echo.
pause
goto start

:end
exit
не нравится то что сравнение происходит постоянно, что вызывает нагрузку на процессор
и второй вопрос- подскажите как выполнить команду "свернуть все окна"

NiOl
25-12-2009, 16:21
Есть легкий и надежный способ отмерить нужное кол-во секунд не нагружая процессор:

set Timer=120
ping -n %Timer% 127.0.0.1>nul


Думаю, что сгодится для 99% задач

firstarey
25-12-2009, 17:38
Есть легкий и надежный способ отмерить нужное кол-во секунд не нагружая процессор:
Код:
set Timer=120
ping -n %Timer% 127.0.0.1>nul
Думаю, что сгодится для 99% задач »
хм.. легко, изящно, работает.. спасибо :)

подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта

Sarus
26-12-2009, 13:17
подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта »
Воспользоваться cmdow.exe
@Echo off
Rem Свернуть все окна
Cmdow /MA

El Sanchez
26-12-2009, 16:37
подскажите еще как из командной строки выполнить "свернуть все окна" »

"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Свернуть все окна.scf"

deepred
17-06-2010, 20:45
Свернуть все окна

******.vbs
Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll
WScript.Sleep 300
objShellApp.UndoMinimizeAll

NiOl
18-06-2010, 17:44
El Sanchez, У меня Ваш вариант не сработал по нескольким объективным причинам, но идея отличная и реализовать ее можно так:
(echo [Shell] & echo Command=2 & echo [Taskbar] & echo Command=ToggleDesktop)>%Temp%\SD.scf
start /wait %Temp%\SD.scf
del /f %Temp%\SD.scf

deepred
21-06-2010, 00:23
Вариант таймера с использованием js
*******************************

*****.bat

@set @x=0 /*
@echo off

:: Ставим паузу
cscript //nologo /e:jscript "%~f0" 5000

exit /b
*/
WScript.Sleep(WScript.Arguments(0))

-----------------------------------------
прим. задержка в мсек., чтобы иметь возможность устанавливать время в сек. необходимо обработать аргумент, т.е.
в последней строке нужны следующие изменения:

WScript.Sleep(WScript.Arguments(0)*1000) тем самым число аргумента увеличилось в 1000 раз
и "перешло в секунды" .

amel27
21-06-2010, 06:02
Вариант таймера с использованием js »
класс!.. спасибо, жаль в VBS нет многострочных комментов

k01t
30-05-2018, 03:57
подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта »
Win7
"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\shows desktop.lnk"

DJ Mogarych
30-05-2018, 09:38
В Powershell ещё проще - например, пауза в 30 секунд делается так:
sleep 30

Свернуть все окна:
(New-Object -ComObject shell.application).toggleDesktop()

setti
04-03-2022, 16:54
У меня есть один мини-код для таймера в 1 строку!
Вместо 360 можно написать любое кол-во секунд.
@echo off
timeout 360 /nobreak




© OSzone.net 2001-2012