Advanced Batch features via auxiliary .exe programs

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Message
Author
Sounak@9434
Posts: 100
Joined: 16 Dec 2016 22:31

Re: Advanced Batch features via auxiliary .exe programs

#61 Post by Sounak@9434 » 09 Feb 2017 23:32

@aGerman: Cool Tool! :D
Thanks Steffen.
Just a few things:-
1) Does conin stands for console input ? I know it's not a serious question, just asking though.
2) Is it possible to have a timer, so that if no input is given within a specified amount of time conin.exe will close itself? I'm too nit picky, am I?
3)
aGerman wrote:Also I used the technique that I learned from carlos in order to skip the overhead caused by the main function in C.

Is the technique available for public? :mrgreen:
Last edited by Sounak@9434 on 10 Feb 2017 11:53, edited 1 time in total.

aGerman
Expert
Posts: 3629
Joined: 22 Jan 2010 18:01
Location: Germany

Re: Advanced Batch features via auxiliary .exe programs

#62 Post by aGerman » 10 Feb 2017 07:00

Sounak@9434 wrote:1) Does conin stands for console input ?

Yes. (Exactly as noted in the batch code.)

Sounak@9434 wrote:3) Is the technique available for public?

Everything noted in the source code. It's GCC specific. The underlying __start routine will be overridden.

Sounak@9434 wrote:2) Is it possible to have a timer, so that if no input is given within a specified amount of time conin.exe will close itself?

Sure.

Code: Select all

@echo off &setlocal EnableDelayedExpansion

:: conin.exe - Read Console Input
:: timeout: %errorlevel% = 0
:: type:    %errorlevel%>>29 (0=keyboard, 1=left click, 2=right click, 3=mouse move)
:: key:     %errorlevel% (either character code or (for extended keys) 256 + key code)
:: mouse:   row = (%errorlevel%>>14)&0x3FFF, column = %errorlevel%&0x3FFF

:: the utility times out after the passed number of milliseconds, it will wait infinite if you don't pass an argument

for /l %%i in () do (
  conin.exe 1000
  set /a "key=!errorlevel!, type=key>>29, y=(key>>14)&0x3FFF, x=key&0x3FFF"

  if !key! == 0 (
    echo timeout
  ) else if !type!==1 (
    echo mouse left  x=!x!, y=!y!
  ) else if !type!==2 (
    echo mouse right x=!x!, y=!y!
  ) else if !type!==3 (
    echo mouse move  x=!x!, y=!y!
  ) else (
    echo keyboard !key!
  )
)


Steffen
Attachments
conin.zip
(2.82 KiB) Downloaded 154 times

Sounak@9434
Posts: 100
Joined: 16 Dec 2016 22:31

Re: Advanced Batch features via auxiliary .exe programs

#63 Post by Sounak@9434 » 10 Feb 2017 10:02

@aGerman: Thank you very much steffen. The latest version works beautifully. Thanks again.
aGerman wrote:
Sounak@9434 wrote:3) Is the technique available for public?

Everything noted in the source code. It's GCC specific. The underlying __start routine will be overridden.


Whoa! :shock: Never realized that was the trick. I have to try it out next time for sure. :)

aGerman
Expert
Posts: 3629
Joined: 22 Jan 2010 18:01
Location: Germany

Re: Advanced Batch features via auxiliary .exe programs

#64 Post by aGerman » 10 Feb 2017 14:52

I had to update the tool because the console mode was not reset if the timeout elapsed.
But now I don't want to occupy Antonio's thread any longer... :wink:

Steffen

Sounak@9434
Posts: 100
Joined: 16 Dec 2016 22:31

Re: Advanced Batch features via auxiliary .exe programs

#65 Post by Sounak@9434 » 10 Feb 2017 23:58

aGerman wrote:But now I don't want to occupy Antonio's thread any longer... :wink:


:mrgreen:

That reminds me my initial request was for Antonio to update his getmouse.exe . Maybe he doesn't want to add keyboard support to a tool named getmouse.exe :D

Thanks though you all. You people are a great help.

thefeduke
Posts: 211
Joined: 05 Apr 2015 13:06
Location: MA South Shore, USA

Re: Advanced Batch features via auxiliary .exe programs

#66 Post by thefeduke » 03 Jan 2018 01:10

I ran into a limitation in the use of window.exe with no operands to get the TITLE of the current window. For some time, I have been handling some cases like this:

Code: Select all

:: . . .
Rem Window.exe returns blanks when Title + 3 + Command exceeds 60
    If NOT Defined Ttl Set "WinTtl=Undetermined - error, blank or too long to handle."
(EndLOCAL & If /I "%~1" NEQ "" (Set "%1=%WinTtl%") Else Echo.%WinTtl%)
:: . . .
Like most of your auxiliary .exe programs, it runs without complaint. The lack of output is the only indication. Would this be a firm limitation of the Windows interfaces that you use to get the information?

John A.

cha_lan_cito
Posts: 1
Joined: 06 Feb 2019 23:35

Re: Advanced Batch features via auxiliary .exe programs

#67 Post by cha_lan_cito » 06 Feb 2019 23:47

Hello,
Uups, I was trying to check if your StdDate.exe pgm could help me, but my Windows 10 - 64 bits OS says that "16 bit pgms are not compatible"
May be you may provide me with a pgm version for at least 32 bits (or better 64 bits)?
Best regards.
Juan Manuel Carrillo Campos

aGerman
Expert
Posts: 3629
Joined: 22 Jan 2010 18:01
Location: Germany

Re: Advanced Batch features via auxiliary .exe programs

#68 Post by aGerman » 07 Feb 2019 13:55

How did you get the tool? In the initial post you will find a download link for all tools compressed in a ZIP file. I can ensure you that the StdDate.exe in this archive is a 32Bit executable and it's running without any problems on Win10 x64, too.

Steffen

Post Reply