OSD /C issue

May 31, 2008
382
2
#1
I want to use OSD to show updates from a detached batch script.
Each OSD message should stay on until the next OSD message takes over.
How do I do that, OSD /C doesn't seem to work as I expected. Consider this fragment:
PHP:
osd /top /right /n 1111
delay 2
osd /c /top /right /n 2222
I think it should show 1111 for 2 seconds then 2222 forever. Instead here it shows 1111 for 2 seconds then nothing (cleared).
I tried several variations but I can't get 2222 to show. It almost seems like option /c is broken, or I don't get it.
 
#2
On Mon, 08 Sep 2008 04:12:39 -0500, Stefano Piccardi <>
wrote:


>PHP:
>---------
>osd /top /right /n 1111
>delay 2
>osd /c /top /right /n 2222
>---------
>I think it should show 1111 for 2 seconds then 2222 forever. Instead here it shows 1111 for 2 seconds then nothing (cleared).
>I tried several variations but I can't get 2222 to show. It almost seems like option /c is broken, or I don't get it.
If I put those three lines in a batch file and run it, after the two-second
delay I see the "cancel batch" prompt. And when that happens, WinDbg shows

C++ EH exception - code e06d7363 (first chance)
C++ EH exception - code e06d7363 (first chance)

I don't know what's happening. What you want to do seems reasonable.
 
#4
|I want to use OSD to show updates from a detached batch script.
| Each OSD message should stay on until the next OSD message takes over.
| How do I do that, OSD /C doesn't seem to work as I expected. Consider this
fragment:
|
| PHP:
| ---------
| osd /top /right /n 1111
| delay 2
| osd /c /top /right /n 2222
| ---------
| I think it should show 1111 for 2 seconds then 2222 forever. Instead here
it shows 1111 for 2 seconds then nothing (cleared).
| I tried several variations but I can't get 2222 to show. It almost seems
like option /c is broken, or I don't get it.
osd /top /right /time=seconds /n display text
 
May 31, 2008
382
2
#6
osd /top /right /time=seconds /n display text
Thank you but this isn't what I need; /time=seconds will remove the OSD after 2 seconds. In my first post I was using delay 2 to signify any arbitrary amount of time that it takes the script to process statements between the first OSD and the next one.
 

rconn

Administrator
Staff member
May 14, 2008
10,436
95
#7
Stefano Piccardi wrote:

> I want to use OSD to show updates from a detached batch script.
> Each OSD message should stay on until the next OSD message takes over.
> How do I do that, OSD /C doesn't seem to work as I expected. Consider
> this fragment:
> PHP Code:
> | | osd /top /right /n 1111
> delay 2
> osd /c /top /right /n 2222
> | |
> I think it should show 1111 for 2 seconds then 2222 forever. Instead
> here it shows 1111 for 2 seconds then nothing (cleared).
> I tried several variations but I can't get 2222 to show. It almost seems
> like option /c is broken, or I don't get it.
OSD /C is intended to kill an existing OSD, not to restart another one.
It will not work in combination with any other OSD options.

Rex Conn
JP Software
 
#8
On Mon, 08 Sep 2008 21:17:23 -0500, rconn <> wrote:


>OSD /C is intended to kill an existing OSD, not to restart another one.
> It will not work in combination with any other OSD options.
What about OSD /C invoking the "cancel batch" prompt?
 
May 31, 2008
382
2
#9
OSD /C is intended to kill an existing OSD, not to restart another one.
It will not work in combination with any other OSD options.
I think OSD /C attempts to kill the batch file, that's why I don't see any other OSDs following an OSD /C
Code:
osd /top /right /n 1111
delay 2
osd /c
osd /time=2 /top /right /n 2222
Results in
Code:
C:\boot>alias osd
TCC: Not an alias "osd"

C:\boot>qbat.bat
osd /top /right /n 1111
delay 2
osd /c

Cancel batch job C:\boot\qbat.bat ? (Y/N/A) :
 
#10
On Wed, 10 Sep 2008 04:27:26 -0500, Stefano Piccardi <>
wrote:


>I think OSD /C attempts to kill the batch file, that's why I don't see any other OSDs following an OSD /C
>
>Code:
>---------
>osd /top /right /n 1111
>delay 2
>osd /c
>osd /time=2 /top /right /n 2222
>---------
>Results in
>Code:
>---------
>C:\boot>alias osd
>TCC: Not an alias "osd"
>
>C:\boot>qbat.bat
>osd /top /right /n 1111
>delay 2
>osd /c
>
>Cancel batch job C:\boot\qbat.bat ? (Y/N/A) :
You can get around it with the likes of "ON BREAK DELAY /M 0". If you really
want to use ON BREAK for other purposes you'll have to get fancy, maybe a local
alias to wrap "OSD /C" in its own break handler and restore the old one, or a
"newosd" subroutine that will do the same.
 
May 31, 2008
382
2
#11
You can get around it with the likes of "ON BREAK DELAY /M 0". If you really
want to use ON BREAK for other purposes you'll have to get fancy, maybe a local
alias to wrap "OSD /C" in its own break handler and restore the old one, or a
"newosd" subroutine that will do the same.
Thanks Vince, I have decided to use sysutils:OS in this case.