MSSpeech-Forum Homepage
Forum Home Forum Home > Windows™ Speech Recognition Forums > Macros and Macro Development
  New Posts New Posts RSS Feed - CDATA problem
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

CDATA problem

 Post Reply Post Reply
Author
Message Reverse Sort Order
BradT View Drop Down
Moderator Group
Moderator Group
Avatar

Joined: 06/Oct/2008
Status: Offline
Points: 40
Post Options Post Options   Thanks (0) Thanks(0)   Quote BradT Quote  Post ReplyReply Direct Link To This Post Topic: CDATA problem
    Posted: 28/Dec/2008 at 6:54pm
Originally posted by cactustweeter cactustweeter wrote:

Thanks Brad.  Your script showed me this was what I was missing:

                ' set named state so we can access it outside VBScript
                '
                NamedStates.SetNamedStateValue "strWindowSide", strWindowSide



Great.  I also uploaded the macro here:

http://www.msspeech-forum.com/uploads/public/25/ResizeWindow.txt

Back to Top
cactustweeter View Drop Down
Member
Member


Joined: 25/Dec/2008
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote cactustweeter Quote  Post ReplyReply Direct Link To This Post Posted: 28/Dec/2008 at 5:44pm
Thanks Brad.  Your script showed me this was what I was missing:

                ' set named state so we can access it outside VBScript
                '
                NamedStates.SetNamedStateValue "strWindowSide", strWindowSide

Back to Top
BradT View Drop Down
Moderator Group
Moderator Group
Avatar

Joined: 06/Oct/2008
Status: Offline
Points: 40
Post Options Post Options   Thanks (0) Thanks(0)   Quote BradT Quote  Post ReplyReply Direct Link To This Post Posted: 28/Dec/2008 at 4:58pm
Hi cactustweeter,

Glad the User's Guide has helped you with WSR Macros...

Here's the code I use for resizing windows, maybe it will help or at least give you some ideas.  Let me know if you have any questions...

Brad

'*********
<?xml version="1.0" encoding="utf-8" ?>

<!--
ResizeWindow - allows resizing of active window (non-maximized) by using ALT-SPACE-S

Syntax: "resize window [SideDirection] [Amount]"

        [SideDirection] = top up || top down || bottom up || bottom down || left in || left out || right in || right out
        [Amount] = 1 to 100

        "resize window much smaller"
        "resize window smaller"
        "resize window larger"
        "resize window much larger"
       
Created: 20 August 2008
Author:  BradT
-->

<speechMacros>
  
  <command>
    <listenFor>resize window [SideDirection] [Amount]</listenFor>

    <script language='VBScript'>
    <![CDATA[
   
    strSideDirection = "{[SideDirection]}"
   
    Select Case strSideDirection
      Case "top up"
        strSide = "{UP}"
        strDirection = "{UP}"
      Case "top down"
        strSide = "{UP}"
        strDirection = "{DOWN}"
      Case "bottom up"
        strSide = "{DOWN}"
        strDirection = "{UP}"
      Case "bottom down"
        strSide = "{DOWN}"
        strDirection = "{DOWN}"
      Case "left in"
        strSide = "{LEFT}"
        strDirection = "{RIGHT}"
      Case "left out"
        strSide = "{LEFT}"
        strDirection = "{LEFT}"
      Case "right in"
        strSide = "{RIGHT}"
        strDirection = "{LEFT}"
      Case "right out"
        strSide = "{RIGHT}"
        strDirection = "{RIGHT}"
      Case Else
        ' should not happen with SideDirection rule
     End Select
    
     '
     ' set named state so we can access it outside VBScript
     '
     NamedStates.SetNamedStateValue "strSide", strSide
     NamedStates.SetNamedStateValue "strDirection", strDirection
   
    ]]>
    </script>

    <sendKeys>{{ALT}}{U+0020}s</sendKeys>
    <waitFor seconds='.250'/>
    <sendKeys>{[strSide]}</sendKeys>
    <!-- note: Not all of the 'times' amount of keystrokes are being received even with a 250 wait -->
    <sendKeys times='{[Amount]}'>{[strDirection]}{250 WAIT}</sendKeys>
    <sendKeys>{ENTER}</sendKeys>
   
  </command>

  <command>
    <listenFor>resize window smaller</listenFor>
    <emulateRecognition>resize window bottom up 10</emulateRecognition>
    <waitFor seconds=".50"/>
    <emulateRecognition>resize window right in 10</emulateRecognition>
  </command>

  <command>
    <listenFor>resize window +much +smaller</listenFor>
    <emulateRecognition>resize window bottom up 50</emulateRecognition>
    <waitFor seconds=".50"/>
    <emulateRecognition>resize window right in 50</emulateRecognition>
  </command>

  <command>
    <listenFor>resize window larger</listenFor>
    <emulateRecognition>resize window bottom down 10</emulateRecognition>
    <waitFor seconds=".50"/>
    <emulateRecognition>resize window right out 10</emulateRecognition>
  </command>

  <command>
    <listenFor>resize window +much +larger</listenFor>
    <emulateRecognition>resize window bottom down 50</emulateRecognition>
    <waitFor seconds=".50"/>
    <emulateRecognition>resize window right out 50</emulateRecognition>
  </command>
 
  <!-- no commands below here -->
 
  <rule name="SideDirection">
     <list>
       <p>top up</p>
       <p>top down</p>
       <p>bottom up</p>
       <p>bottom down</p>
       <p>left in</p>
       <p>left out</p>
       <p>right in</p>
       <p>right out</p>
     </list>
  </rule>
 
  <numbers name="Amount" start="1" stop="100"/>
 
</speechMacros>

Back to Top
cactustweeter View Drop Down
Member
Member


Joined: 25/Dec/2008
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote cactustweeter Quote  Post ReplyReply Direct Link To This Post Posted: 28/Dec/2008 at 3:19pm
I posted the wrong revision of the script.  What I posted earlier definitely won't work.  However, what's below I believe should work.  Sorry for the confusion.

<speechMacros>
    <command>
        <listenFor>shrink window [WindowSide] [1to500]</listenFor>
        <script language="VBScript">
            <![CDATA[
                Dim strWindowSide
                if "{[WindowSide]}" = "top" then
                    strWindowSide = "{up}"
                elseif "{[WindowSide]}" = "bottom" then
                    strWindowSide = "{down}"
                elseif "{[WindowSide]}" = "left" then
                    strWindowSide = "{left}"
                elseif "{[WindowSide]}" = "right" then
                    strWindowSide = "{right}"
                else
                    strWindowSide = "{esc}"
                end if
            ]]>
        </script>
        <!-- set the window for sizing -->
        <sendKeys>{{alt}}{u+0020}s</sendKeys>
        <waitFor seconds=".25"/>
        <!-- set the window side for shrinking -->
        <sendKeys times="1">{[strWindowSide]}{5 wait}</sendKeys>
        <!-- for my computer I had to add the 5 ms delay otherwise the keys were missed -->
        <sendKeys times="{[1to500]}">{[WindowSide.Keys]}{5 wait}</sendKeys>
        <sendKeys>{enter}</sendKeys>
    </command>

    <listenForList name="WindowSide" propname="Keys">
        <item propval="{down}">top</item>
        <item propval="{up}">bottom</item>
        <item propval="{right}">left</item>
        <item propval="{left}">right</item>
    </listenForList>
   
    <numbers name="1to500" start="1" stop="500"/>
</speechMacros>

Back to Top
cactustweeter View Drop Down
Member
Member


Joined: 25/Dec/2008
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote cactustweeter Quote  Post ReplyReply Direct Link To This Post Posted: 27/Dec/2008 at 8:15pm
Brad,

I am a veteran DNS user who is trying to get up to speed with WSR.  I'm trying to create the macros I use in DNS that are not available by default in WSR.  I bought your book to help me get up to speed on macro programming.  I found it a good read.  Well worth the money.

I'm currently working on my window manipulation macros.  Stuff like move/expand/shrink window <direction> <1to500>.  I have the move/expand window macros finished.  I'm having trouble with the shrink window macro.  Basically I'm trying to use a script block to determine which side of the window to set so I can shrink it.  I've tried several things and the following code is my latest revision.  There are no compile errors.  However, it just doesn't seem to work.  Have any suggestions?

<speechMacros>
    <command>
        <listenFor>shrink window [Direction] [1to500]</listenFor>
        <script language='VBScript'>
            <![CDATA[
                Dim strDirection
                if "{[Direction]}" = "up" then
                    strDirection = "{down}"
                elseif "{[Direction]}" = "down" then
                    strDirection = "{up}"
                elseif "{[Direction]}" = "left" then
                    strDirection = "{right}"
                elseif "{[Direction]}" = "right" then
                    strDirection = "{left}"
                else
                    strDirection = "{esc}"
                end if
            ]]>
        </script>
        <!-- set the window for sizing -->
        <sendKeys>{{alt}}{u+0020}s</sendKeys>
        <waitFor seconds=".25"/>
        <!-- set the window side for shrinking -->
        <sendKeys times="1">{[strDirection]}{5 wait}</sendKeys>
        <!-- for my computer I had to add the 5 ms delay otherwise the keys were missed -->
        <sendKeys times="{[1to500]}">{[Direction.Keys]}{5 wait}</sendKeys>
        <sendKeys>{enter}</sendKeys>
    </command>

    <listenForList name="Direction" propname="Keys">
        <item propval="{up}">up</item>
        <item propval="{down}">down</item>
        <item propval="{left}">left</item>
        <item propval="{right}">right</item>
    </listenForList>
</speechMacros>

Thanks...
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.02
Copyright ©2001-2019 Web Wiz Ltd.

This page was generated in 0.250 seconds.

Microsoft Most Valuable Professional

§- Thank you for visiting our Windows Speech Recognition and Macro Forum.. -§