Page 1 of 2

On Exit Do Command

Posted: 07 Feb 2010 20:32
by BAT Beginner
Is there any code that does a command when the executor closes the .bat file with the red X?If so, PLEASE post it below!

Re: On Exit Do Command

Posted: 08 Feb 2010 05:24
by aGerman
BAT Beginner

There is no command for such intention.
Batches are interpreted line by line. If you close the window this interpretation is interrupted and nothing else will go on.

Regards
aGerman

Re: On Exit Do Command

Posted: 08 Feb 2010 16:39
by BAT Beginner
Can you disable the red X at least?

Re: On Exit Do Command

Posted: 08 Feb 2010 16:49
by aGerman
No, you can't.
Also you can't disable Ctrl+C.

Why do you need it?

Regards
aGerman

Re: On Exit Do Command

Posted: 08 Feb 2010 17:59
by BAT Beginner
Because, as my name states, i am a .bat beginner and i want to know all the code i can possibly learn so i can become an expert.

Re: On Exit Do Command

Posted: 09 Feb 2010 04:07
by aGerman
My question was geared if you would need it for something special.

Batch is a very primordial class. It is based on good old DOS and has a lot of limitations.
Batch doesn't have any event handler. That means you can't figure out
- which key is pressed
- which mouse button is pushd
- where the mause cursor is placed
and many more...
Also you can't use any WinAPI function.

Note that batch is no programming language. Nearly each command is a separate *.exe or *.com file.

Regards
aGerman

Re: On Exit Do Command

Posted: 10 Feb 2010 11:24
by avery_larry
aGerman wrote:No, you can't.
Also you can't disable Ctrl+C.

Why do you need it?

Regards
aGerman

Actually, start /wait /b will disable Ctrl+C for the duration of that particular command.

Re: On Exit Do Command

Posted: 10 Feb 2010 15:21
by aGerman
avery_larry wrote:Actually, start /wait /b will disable Ctrl+C for the duration of that particular command.

You are right, but that doesn't change the fact that you can't disable it for the whole run time of a batch code.

regards
aGerman

Re: On Exit Do Command

Posted: 12 Feb 2010 10:59
by Stergioss
Well you can disable the RED X button but only with Visual Basic
At least this is my opinion . . .

aGerman wrote:- which key is pressed


Major wrong!

Code: Select all

@ECHO OFF
TITLE Keyboard Simulator
MODE CON cols=41 lines=5
:a
SET q1=
SET q2=
SET w1=
SET w2=
SET e1=
SET e2=
SET r1=
SET r2=
SET t1=
SET t2=
SET y1=
SET y2=
SET u1=
SET u2=
SET i1=
SET i2=
SET o1=
SET o2=
SET p1=
SET p2=
SET a1=
SET a2=
SET s1=
SET s2=
SET d1=
SET d2=
SET f1=
SET f2=
SET g1=
SET g2=
SET h1=
SET h2=
SET j1=
SET j2=
SET k1=
SET k2=
SET l1=
SET l2=
SET z1=
SET z2=
SET x1=
SET x2=
SET c1=
SET c2=
SET v1=
SET v2=
SET b1=
SET b2=
SET n1=
SET n2=
SET m1=
SET m2=
SET x11x=
SET x12x=
SET x21x=
SET x22x=
SET x31x=
SET x32x=
SET x41x=
SET x42x=
SET x51x=
SET x52x=
SET x61x=
SET x62x=
SET x71x=
SET x72x=
SET x81x=
SET x82x=
SET x91x=
SET x92x=
SET x01x=
SET x02x=
IF %ERRORLEVEL%==1 (
SET q1=[
SET q2=]
)
IF %ERRORLEVEL%==2 (
SET w1=[
SET w2=]
)
IF %ERRORLEVEL%==3 (
SET e1=[
SET e2=]
)
IF %ERRORLEVEL%==4 (
SET r1=[
SET r2=]
)
IF %ERRORLEVEL%==5 (
SET t1=[
SET t2=]
)
IF %ERRORLEVEL%==6 (
SET y1=[
SET y2=]
)
IF %ERRORLEVEL%==7 (
SET u1=[
SET u2=]
)
IF %ERRORLEVEL%==8 (
SET i1=[
SET i2=]
)
IF %ERRORLEVEL%==9 (
SET o1=[
SET o2=]
)
IF %ERRORLEVEL%==10 (
SET p1=[
SET p2=]
)
IF %ERRORLEVEL%==11 (
SET a1=[
SET a2=]
)
IF %ERRORLEVEL%==12 (
SET s1=[
SET s2=]
)
IF %ERRORLEVEL%==13 (
SET d1=[
SET d2=]
)
IF %ERRORLEVEL%==14 (
SET f1=[
SET f2=]
)
IF %ERRORLEVEL%==15 (
SET g1=[
SET g2=]
)
IF %ERRORLEVEL%==16 (
SET h1=[
SET h2=]
)
IF %ERRORLEVEL%==17 (
SET j1=[
SET j2=]
)
IF %ERRORLEVEL%==18 (
SET k1=[
SET k2=]
)
IF %ERRORLEVEL%==19 (
SET l1=[
SET l2=]
)
IF %ERRORLEVEL%==20 (
SET z1=[
SET z2=]
)
IF %ERRORLEVEL%==21 (
SET x1=[
SET x2=]
)
IF %ERRORLEVEL%==22 (
SET c1=[
SET c2=]
)
IF %ERRORLEVEL%==23 (
SET v1=[
SET v2=]
)
IF %ERRORLEVEL%==24 (
SET b1=[
SET b2=]
)
IF %ERRORLEVEL%==25 (
SET n1=[
SET n2=]
)
IF %ERRORLEVEL%==26 (
SET m1=[
SET m2=]
)
IF %ERRORLEVEL%==27 (
SET x11x=[
SET x12x=]
)
IF %ERRORLEVEL%==28 (
SET x21x=[
SET x22x=]
)
IF %ERRORLEVEL%==29 (
SET x31x=[
SET x32x=]
)
IF %ERRORLEVEL%==30 (
SET x41x=[
SET x42x=]
)
IF %ERRORLEVEL%==31 (
SET x51x=[
SET x52x=]
)
IF %ERRORLEVEL%==32 (
SET x61x=[
SET x62x=]
)
IF %ERRORLEVEL%==33 (
SET x71x=[
SET x72x=]
)
IF %ERRORLEVEL%==34 (
SET x81x=[
SET x82x=]
)
IF %ERRORLEVEL%==35 (
SET x91x=[
SET x92x=]
)
IF %ERRORLEVEL%==36 (
SET x01x=[
SET x02x=]
)
CLS
ECHO.%x11x%1%x12x% %x21x%2%x22x% %x31x%3%x32x% %x41x%4%4%x42x% %x51x%5%x52x% %x61x%6%x62x% %x71x%7%x72x% %x81x%8%x82x% %x91x%9%x92x% %x01x%0%x02x%
ECHO. %q1%Q%q2% %w1%W%w2% %e1%E%e2% %r1%R%r2% %t1%T%t2% %y1%Y%y2% %u1%U%u2% %i1%I%i2% %o1%O%o2% %p1%P%p2%
ECHO.  %a1%A%a2% %s1%S%s2% %d1%D%d2% %f1%F%f2% %g1%G%g2% %h1%H%h2% %j1%J%j2% %k1%K%k2% %l1%L%l2%
ECHO.   %z1%Z%z2% %x1%X%x2% %c1%C%c2% %v1%V%v2% %b1%B%b2% %n1%N%n2% %m1%M%m2%
CHOICE /C qwertyuiopasdfghjklzxcvbnm1234567890 /N > nul
GOTO a


Just found you teacher!
Just joined :wink: 8)

Re: On Exit Do Command

Posted: 12 Feb 2010 13:14
by aGerman
Stergioss
you're a joker :lol:
Okay, I've got it to work:

Code: Select all

@echo off
TITLE Keyboard Simulator
MODE CON cols=41 lines=6
set ERRL=0
:a
SET q1=
SET q2=
SET w1=
SET w2=
SET e1=
SET e2=
SET r1=
SET r2=
SET t1=
SET t2=
SET y1=
SET y2=
SET u1=
SET u2=
SET i1=
SET i2=
SET o1=
SET o2=
SET p1=
SET p2=
SET a1=
SET a2=
SET s1=
SET s2=
SET d1=
SET d2=
SET f1=
SET f2=
SET g1=
SET g2=
SET h1=
SET h2=
SET j1=
SET j2=
SET k1=
SET k2=
SET l1=
SET l2=
SET z1=
SET z2=
SET x1=
SET x2=
SET c1=
SET c2=
SET v1=
SET v2=
SET b1=
SET b2=
SET n1=
SET n2=
SET m1=
SET m2=
SET x11x=
SET x12x=
SET x21x=
SET x22x=
SET x31x=
SET x32x=
SET x41x=
SET x42x=
SET x51x=
SET x52x=
SET x61x=
SET x62x=
SET x71x=
SET x72x=
SET x81x=
SET x82x=
SET x91x=
SET x92x=
SET x01x=
SET x02x=
IF %ERRL%==1 (
SET q1=[
SET q2=]
)
IF %ERRL%==2 (
SET w1=[
SET w2=]
)
IF %ERRL%==3 (
SET e1=[
SET e2=]
)
IF %ERRL%==4 (
SET r1=[
SET r2=]
)
IF %ERRL%==5 (
SET t1=[
SET t2=]
)
IF %ERRL%==6 (
SET y1=[
SET y2=]
)
IF %ERRL%==7 (
SET u1=[
SET u2=]
)
IF %ERRL%==8 (
SET i1=[
SET i2=]
)
IF %ERRL%==9 (
SET o1=[
SET o2=]
)
IF %ERRL%==10 (
SET p1=[
SET p2=]
)
IF %ERRL%==11 (
SET a1=[
SET a2=]
)
IF %ERRL%==12 (
SET s1=[
SET s2=]
)
IF %ERRL%==13 (
SET d1=[
SET d2=]
)
IF %ERRL%==14 (
SET f1=[
SET f2=]
)
IF %ERRL%==15 (
SET g1=[
SET g2=]
)
IF %ERRL%==16 (
SET h1=[
SET h2=]
)
IF %ERRL%==17 (
SET j1=[
SET j2=]
)
IF %ERRL%==18 (
SET k1=[
SET k2=]
)
IF %ERRL%==19 (
SET l1=[
SET l2=]
)
IF %ERRL%==20 (
SET z1=[
SET z2=]
)
IF %ERRL%==21 (
SET x1=[
SET x2=]
)
IF %ERRL%==22 (
SET c1=[
SET c2=]
)
IF %ERRL%==23 (
SET v1=[
SET v2=]
)
IF %ERRL%==24 (
SET b1=[
SET b2=]
)
IF %ERRL%==25 (
SET n1=[
SET n2=]
)
IF %ERRL%==26 (
SET m1=[
SET m2=]
)
IF %ERRL%==27 (
SET x11x=[
SET x12x=]
)
IF %ERRL%==28 (
SET x21x=[
SET x22x=]
)
IF %ERRL%==29 (
SET x31x=[
SET x32x=]
)
IF %ERRL%==30 (
SET x41x=[
SET x42x=]
)
IF %ERRL%==31 (
SET x51x=[
SET x52x=]
)
IF %ERRL%==32 (
SET x61x=[
SET x62x=]
)
IF %ERRL%==33 (
SET x71x=[
SET x72x=]
)
IF %ERRL%==34 (
SET x81x=[
SET x82x=]
)
IF %ERRL%==35 (
SET x91x=[
SET x92x=]
)
IF %ERRL%==36 (
SET x01x=[
SET x02x=]
)
CLS
ECHO.%x11x%1%x12x% %x21x%2%x22x% %x31x%3%x32x% %x41x%4%4%x42x% %x51x%5%x52x% %x61x%6%x62x% %x71x%7%x72x% %x81x%8%x82x% %x91x%9%x92x% %x01x%0%x02x%
ECHO. %q1%Q%q2% %w1%W%w2% %e1%E%e2% %r1%R%r2% %t1%T%t2% %y1%Y%y2% %u1%U%u2% %i1%I%i2% %o1%O%o2% %p1%P%p2%
ECHO.  %a1%A%a2% %s1%S%s2% %d1%D%d2% %f1%F%f2% %g1%G%g2% %h1%H%h2% %j1%J%j2% %k1%K%k2% %l1%L%l2%
ECHO.   %z1%Z%z2% %x1%X%x2% %c1%C%c2% %v1%V%v2% %b1%B%b2% %n1%N%n2% %m1%M%m2%
CHOICE /C:qwertyuiopasdfghjklzxcvbnm1234567890 /N > nul
set ERRL=%errorlevel%
GOTO a


But:
Stergioss wrote:Major wrong!

Hmm, try to detect F1 - F12, Print, Insert, Del, Shift, Ctrl, Alt, Arrows ... :wink:
And try if another window is focussed ...

Regards
aGerman

Re: On Exit Do Command

Posted: 12 Feb 2010 15:11
by BAT Beginner
Ok All those codes are Awesome
But i was wondering, how to you make sounds like you did with the keyboard batch?
I would really love that kind of code.

Re: On Exit Do Command

Posted: 12 Feb 2010 16:26
by aGerman
BAT Beginner wrote:But i was wondering, how to you make sounds like you did with the keyboard batch?

I'm wondering why you can hear a sound :?:

Re: On Exit Do Command

Posted: 12 Feb 2010 17:18
by BAT Beginner
When You Press ENTER it makes a noise.Also ; or , or ] etc...

Re: On Exit Do Command

Posted: 12 Feb 2010 17:40
by aGerman
This beep is a warning of the choice command. Because only the keys behind the /C: switch are allowed.

But you are able to generate a beep using the echo command with ASCII character 07.
copy/paste:

Code: Select all

@echo off
:beep
cls
echo 
ping -n 2 localhost>nul
goto beep


Regards
aGerman

Re: On Exit Do Command

Posted: 12 Feb 2010 18:58
by Stergioss
aGerman wrote:Hmm, try to detect F1 - F12, Print, Insert, Del, Shift, Ctrl, Alt, Arrows ... :wink:
And try if another window is focussed ...

Well ok But still with some more research . . .!

BAT Beginner wrote:Ok All those codes are Awesome
But i was wondering, how to you make sounds like you did with the keyboard batch?
I would really love that kind of code.

Just add the Echo Icon

aGerman wrote:IF %ERRL%==1 (
SET q1=[
SET q2=]
Echo Beep Icon Here(Too lazy to Copy paste! :D
)



Also aGerman :
1)Bist du auf deutchland?
2)Come to a good forum i am visiting
http://www.lingubender.com/forum/index.php
There is a guy With more knownlodge!
I would really like to see u 2 discussing!
My name there is also Stergioss