Loading ...
Sorry, an error occurred while loading the content.

Re: Help finding Controls on a form

Expand Messages
  • Dennis K. Paulsen
    Hello, The textbox control you seek could be hiding underneath several child windows... So, what follows is a link to a free tool to help in identifying
    Message 1 of 5 , May 30, 2003
    View Source
    • 0 Attachment
      Hello,

      The textbox control you seek could be hiding underneath several
      child windows... So, what follows is a link to a free tool to help
      in identifying windows and their heirarchy, i.e. one just has to
      drag the pointer from this tool over the desired control/window and
      it will tell you important information:

      http://freespace.virgin.net/james.brown7/winspy.html

      This tool provides such information as the correct Window
      Caption/Title, Class, Hierarchy, etc. of the desired control. This
      information can then be utilized in conjunction with
      Win32::GUITest's FindWindowLike function to obtain the correct
      handle to the control.

      Hope this helps.

      Regards,
      Dennis K. Paulsen

      --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
      <PC210018@e...> wrote:
      > I am new at this so please bear with me. I am trying to fill in a
      text box
      > in one application (Remedy) with data from a Perl script. I am
      having
      > trouble determining the handle of the text box control that I
      want to put
      > the data into . The destination form has about 100 controls on
      it. The
      > code I am testing with is just trying to read the controls is
      included below
      > but does not show any of the individual controls except for
      whatever edit
      > box has the focus at the time.
      >
      > Thanks for listening
      > Phil Carner
      >
      >
      >
      > #!/usr/bin/perl
      > use Win32::GuiTest qw/GetChildWindows WMSetText WMGetText
      WaitWindowLike
      > IsWindowEnabled PushButton SendKeys FindWindowLike GetWindowText
      > GetClassName GetChildDepth GetDesktopWindow SetForegroundWindow/;
      > #system("start Aruser.exe");
      > $title = "^PTC.*"; # title of window to search for
      > WaitWindowLike(0, $title, 60);
      > @remedy = FindWindowLike(0, $title);
      > foreach(@remedy){print "Remedy window ". sprintf "%lx\n",$_;}
      > $remedy = $remedy[0];
      > @order = FindWindowLike($remedy,"FormView") ;
      > foreach (@order){
      > print "Input Window Found " . sprintf "%lx\n",$_;
      > }
      > $order = $order[0];
      > @wnds = GetChildWindows($order);
      > foreach(@wnds){
      > $hexhandle = sprintf "%lx",$_ ;
      > print "$hexhandle Window text =" . GetWindowText($_) ;
      > print " class name =" . GetClassName($_) ;
      > print " Value = " . WMGetText($_) . "\n";
      > }
      >
      > The ouput is
      > Remedy window 40574
      >
      > Input Window Found 105ec
      >
      > 1061c Window text = class name =SysTabControl32 Value =
      >
      > 1062e Window text =Page8 class name =AfxWnd42 Value = Page8
      >
      > 1062a Window text =Page7 class name =AfxWnd42 Value = Page7
      >
      > 10626 Window text =Page6 class name =AfxWnd42 Value = Page6
      >
      > 10622 Window text =Page5 class name =AfxWnd42 Value = Page5
      >
      > 1061e Window text =Page4 class name =AfxWnd42 Value = Page4
      >
      > 105f4 Window text = class name =AfxWnd42 Value =
      >
      > 10616 Window text = class name =SysTabControl32 Value =
      >
      > 10618 Window text =FLIP class name =AfxWnd42 Value = FLIP
      >
      > 10604 Window text = class name =SysTabControl32 Value =
      >
      > 10612 Window text =API Tab class name =AfxWnd42 Value = API Tab
      >
      > 1060e Window text =Oracle 11i Tab class name =AfxWnd42 Value =
      Oracle 11i
      > Tab
      >
      > 1060a Window text =CE Message Tab class name =AfxWnd42 Value = CE
      Message
      > Tab
      >
      > 10606 Window text =D1 Val Tab class name =AfxWnd42 Value = D1 Val
      Tab
      >
      > 105f8 Window text = class name =AfxWnd42 Value =
      >
      > 105f0 Window text = class name =SysTabControl32 Value =
      >
      > 105f6 Window text = class name =AfxWnd42 Value =
      >
      > 10600 Window text =Oracle NFO Activities class name =AfxWnd42
      Value = Oracle
      > NFO Activities
      >
      > 105fc Window text =FLIP NFO Activities class name =AfxWnd42 Value
      = FLIP NFO
      > Activities
      >
      > 105f2 Window text = class name =AfxWnd42 Value =
      >
      > 105fa Window text = class name =AfxWnd42 Value =
      >
      > d059e Window text = class name =RICHEDIT Value = sss
    • Carner, Philipp W
      I do like the enhancements this tool provides, but when I drag the icon over the text box I need the info for, there is nothing displayed. Which is true for
      Message 2 of 5 , Jun 2, 2003
      View Source
      • 0 Attachment
        Message
        I do like the enhancements this tool provides, but when I drag the icon over the text box I need the info for, there is nothing displayed.  Which is true for the other 50 or so controls on that form.  The only way I can get the info for it is to switch to the window first and click the mouse in it to give it the focus.  Then the tool with show the window information.
         
        I thought every control had to have a handle, but these do no appear to follow that rule.
         
        Help!!
        Phil
        -----Original Message-----
        From: Dennis K. Paulsen [mailto:ctrondlpaulsden@...]
        Sent: Saturday, May 31, 2003 1:57 AM
        To: perlguitest@yahoogroups.com
        Subject: [perlguitest] Re: Help finding Controls on a form

        Hello,

        The textbox control you seek could be hiding underneath several
        child windows...  So, what follows is a link to a free tool to help
        in identifying windows and their heirarchy, i.e. one just has to
        drag the pointer from this tool over the desired control/window and
        it will tell you important information:

        http://freespace.virgin.net/james.brown7/winspy.html

        This tool provides such information as the correct Window
        Caption/Title, Class, Hierarchy, etc. of the desired control.  This
        information can then be utilized in conjunction with
        Win32::GUITest's FindWindowLike function to obtain the correct
        handle to the control.

        Hope this helps.

        Regards,
        Dennis K. Paulsen

        --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
        <PC210018@e...> wrote:
        > I am new at this so please bear with me.  I am trying to fill in a
        text box
        > in one application (Remedy) with data from a Perl script.  I am
        having
        > trouble determining the handle of the text box control  that I
        want to put
        > the data into .  The destination form has about 100 controls on
        it.  The
        > code I am testing with is just trying to read the controls is
        included below
        > but does not show any of the individual controls except for
        whatever edit
        > box has the focus at the time.

        > Thanks for listening
        > Phil Carner



        > #!/usr/bin/perl
        > use Win32::GuiTest qw/GetChildWindows WMSetText WMGetText
        WaitWindowLike
        > IsWindowEnabled PushButton SendKeys FindWindowLike GetWindowText
        > GetClassName GetChildDepth GetDesktopWindow SetForegroundWindow/;
        > #system("start Aruser.exe");
        > $title = "^PTC.*"; # title of window to search for
        > WaitWindowLike(0, $title, 60);
        > @remedy = FindWindowLike(0, $title);
        > foreach(@remedy){print "Remedy window ". sprintf "%lx\n",$_;}
        > $remedy = $remedy[0];
        > @order = FindWindowLike($remedy,"FormView") ;
        > foreach (@order){
        >  print "Input Window Found " . sprintf "%lx\n",$_;
        > }
        > $order = $order[0];
        > @wnds = GetChildWindows($order);
        > foreach(@wnds){
        >  $hexhandle = sprintf "%lx",$_ ;
        >  print "$hexhandle  Window text =" . GetWindowText($_)  ;
        >  print " class name =" . GetClassName($_) ;
        >  print "  Value = " .  WMGetText($_) . "\n";
        > }

        > The ouput is
        > Remedy window 40574
        >
        > Input Window Found 105ec
        >
        > 1061c Window text = class name =SysTabControl32 Value =
        >
        > 1062e Window text =Page8 class name =AfxWnd42 Value = Page8
        >
        > 1062a Window text =Page7 class name =AfxWnd42 Value = Page7
        >
        > 10626 Window text =Page6 class name =AfxWnd42 Value = Page6
        >
        > 10622 Window text =Page5 class name =AfxWnd42 Value = Page5
        >
        > 1061e Window text =Page4 class name =AfxWnd42 Value = Page4
        >
        > 105f4 Window text = class name =AfxWnd42 Value =
        >
        > 10616 Window text = class name =SysTabControl32 Value =
        >
        > 10618 Window text =FLIP class name =AfxWnd42 Value = FLIP
        >
        > 10604 Window text = class name =SysTabControl32 Value =
        >
        > 10612 Window text =API Tab class name =AfxWnd42 Value = API Tab
        >
        > 1060e Window text =Oracle 11i Tab class name =AfxWnd42 Value =
        Oracle 11i
        > Tab
        >
        > 1060a Window text =CE Message Tab class name =AfxWnd42 Value = CE
        Message
        > Tab
        >
        > 10606 Window text =D1 Val Tab class name =AfxWnd42 Value = D1 Val
        Tab
        >
        > 105f8 Window text = class name =AfxWnd42 Value =
        >
        > 105f0 Window text = class name =SysTabControl32 Value =
        >
        > 105f6 Window text = class name =AfxWnd42 Value =
        >
        > 10600 Window text =Oracle NFO Activities class name =AfxWnd42
        Value = Oracle
        > NFO Activities
        >
        > 105fc Window text =FLIP NFO Activities class name =AfxWnd42 Value
        = FLIP NFO
        > Activities
        >
        > 105f2 Window text = class name =AfxWnd42 Value =
        >
        > 105fa Window text = class name =AfxWnd42 Value =
        >
        > d059e Window text = class name =RICHEDIT Value = sss



        To unsubscribe from this group, send an email to:
        perlguitest-unsubscribe@yahoogroups.com



        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
      • Dennis K. Paulsen
        I ve never seen this behavior before, maybe someone else has? Otherwise, if you could provide more information on the application you are working with, maybe
        Message 3 of 5 , Jun 3, 2003
        View Source
        • 0 Attachment
          I've never seen this behavior before, maybe someone else has?
          Otherwise, if you could provide more information on the application
          you are working with, maybe someone or myself can take a look too.
          By some of your output, it looks like this is an Oracle
          application?? Feel free to let us know....

          Thanks,
          Dennis K. Paulsen

          --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
          <PC210018@e...> wrote:
          > I do like the enhancements this tool provides, but when I drag the
          icon over
          > the text box I need the info for, there is nothing displayed.
          Which is true
          > for the other 50 or so controls on that form. The only way I can
          get the
          > info for it is to switch to the window first and click the mouse
          in it to
          > give it the focus. Then the tool with show the window information.
          >
          > I thought every control had to have a handle, but these do no
          appear to
          > follow that rule.
          >
          > Help!!
          > Phil
          >
          > -----Original Message-----
          > From: Dennis K. Paulsen [mailto:ctrondlpaulsden@y...]
          > Sent: Saturday, May 31, 2003 1:57 AM
          > To: perlguitest@yahoogroups.com
          > Subject: [perlguitest] Re: Help finding Controls on a form
          >
          >
          > Hello,
          >
          > The textbox control you seek could be hiding underneath several
          > child windows... So, what follows is a link to a free tool to
          help
          > in identifying windows and their heirarchy, i.e. one just has to
          > drag the pointer from this tool over the desired control/window
          and
          > it will tell you important information:
          >
          > http://freespace.virgin.net/james.brown7/winspy.html
          > <http://freespace.virgin.net/james.brown7/winspy.html>
          >
          > This tool provides such information as the correct Window
          > Caption/Title, Class, Hierarchy, etc. of the desired control.
          This
          > information can then be utilized in conjunction with
          > Win32::GUITest's FindWindowLike function to obtain the correct
          > handle to the control.
          >
          > Hope this helps.
          >
          > Regards,
          > Dennis K. Paulsen
          >
          > --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
          > <PC210018@e...> wrote:
          > > I am new at this so please bear with me. I am trying to fill in
          a
          > text box
          > > in one application (Remedy) with data from a Perl script. I am
          > having
          > > trouble determining the handle of the text box control that I
          > want to put
          > > the data into . The destination form has about 100 controls on
          > it. The
          > > code I am testing with is just trying to read the controls is
          > included below
          > > but does not show any of the individual controls except for
          > whatever edit
          > > box has the focus at the time.
          > >
          > > Thanks for listening
          > > Phil Carner
          > >
          > >
          > >
          > > #!/usr/bin/perl
          > > use Win32::GuiTest qw/GetChildWindows WMSetText WMGetText
          > WaitWindowLike
          > > IsWindowEnabled PushButton SendKeys FindWindowLike GetWindowText
          > > GetClassName GetChildDepth GetDesktopWindow
          SetForegroundWindow/;
          > > #system("start Aruser.exe");
          > > $title = "^PTC.*"; # title of window to search for
          > > WaitWindowLike(0, $title, 60);
          > > @remedy = FindWindowLike(0, $title);
          > > foreach(@remedy){print "Remedy window ". sprintf "%lx\n",$_;}
          > > $remedy = $remedy[0];
          > > @order = FindWindowLike($remedy,"FormView") ;
          > > foreach (@order){
          > > print "Input Window Found " . sprintf "%lx\n",$_;
          > > }
          > > $order = $order[0];
          > > @wnds = GetChildWindows($order);
          > > foreach(@wnds){
          > > $hexhandle = sprintf "%lx",$_ ;
          > > print "$hexhandle Window text =" . GetWindowText($_) ;
          > > print " class name =" . GetClassName($_) ;
          > > print " Value = " . WMGetText($_) . "\n";
          > > }
          > >
          > > The ouput is
          > > Remedy window 40574
          > >
          > > Input Window Found 105ec
          > >
          > > 1061c Window text = class name =SysTabControl32 Value =
          > >
          > > 1062e Window text =Page8 class name =AfxWnd42 Value = Page8
          > >
          > > 1062a Window text =Page7 class name =AfxWnd42 Value = Page7
          > >
          > > 10626 Window text =Page6 class name =AfxWnd42 Value = Page6
          > >
          > > 10622 Window text =Page5 class name =AfxWnd42 Value = Page5
          > >
          > > 1061e Window text =Page4 class name =AfxWnd42 Value = Page4
          > >
          > > 105f4 Window text = class name =AfxWnd42 Value =
          > >
          > > 10616 Window text = class name =SysTabControl32 Value =
          > >
          > > 10618 Window text =FLIP class name =AfxWnd42 Value = FLIP
          > >
          > > 10604 Window text = class name =SysTabControl32 Value =
          > >
          > > 10612 Window text =API Tab class name =AfxWnd42 Value = API Tab
          > >
          > > 1060e Window text =Oracle 11i Tab class name =AfxWnd42 Value =
          > Oracle 11i
          > > Tab
          > >
          > > 1060a Window text =CE Message Tab class name =AfxWnd42 Value =
          CE
          > Message
          > > Tab
          > >
          > > 10606 Window text =D1 Val Tab class name =AfxWnd42 Value = D1
          Val
          > Tab
          > >
          > > 105f8 Window text = class name =AfxWnd42 Value =
          > >
          > > 105f0 Window text = class name =SysTabControl32 Value =
          > >
          > > 105f6 Window text = class name =AfxWnd42 Value =
          > >
          > > 10600 Window text =Oracle NFO Activities class name =AfxWnd42
          > Value = Oracle
          > > NFO Activities
          > >
          > > 105fc Window text =FLIP NFO Activities class name =AfxWnd42
          Value
          > = FLIP NFO
          > > Activities
          > >
          > > 105f2 Window text = class name =AfxWnd42 Value =
          > >
          > > 105fa Window text = class name =AfxWnd42 Value =
          > >
          > > d059e Window text = class name =RICHEDIT Value = sss
          >
          >
          >
          > Yahoo! Groups Sponsor
          >
          > ADVERTISEMENT
          >
          >
          <http://rd.yahoo.com/M=244522.3313099.4604523.1261774/D=egroupweb/S=1
          7050069
          >
          51:HM/A=1595056/R=0/SIG=124fv1soh/*http://ashnin.com/clk/muryutaitake
          nattogy
          > o?YH=3313099&yhad=1595056> Click Here!
          >
          > <http://us.adserver.yahoo.com/l?
          M=244522.3313099.4604523.1261774/D=egroupmai
          > l/S=:HM/A=1595056/rand=146705483>
          >
          > To unsubscribe from this group, send an email to:
          > perlguitest-unsubscribe@yahoogroups.com
          >
          >
          >
          > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
          > <http://docs.yahoo.com/info/terms/> .
        • Carner, Philipp W
          The application that exhibits this behavior is called Remedy . It is a big bucks application the company uses at our call center to track orders. It does
          Message 4 of 5 , Jun 4, 2003
          View Source
          • 0 Attachment
            Message
            The application that exhibits this behavior is called "Remedy".  It is a big bucks application the company uses at our call center to track orders.  It does talk to Oracle 11i, but is not an Oracle application.  There must be around 50 text boxes on the form along with some tab controls.  Spy++ can get handle info on the tab controls but none of the text boxes even if they are in the tab control.  The exception is if a text box has the focus on the form.  What I am trying to do is feed an order number into one of the text boxes from a Perl script.
             
            Thanks for giving this some thought.
            Phil
            -----Original Message-----
            From: Dennis K. Paulsen [mailto:ctrondlpaulsden@...]
            Sent: Tuesday, June 03, 2003 8:19 PM
            To: perlguitest@yahoogroups.com
            Subject: [perlguitest] Re: Help finding Controls on a form

            I've never seen this behavior before, maybe someone else has? 
            Otherwise, if you could provide more information on the application
            you are working with, maybe someone or myself can take a look too. 
            By some of your output, it looks like this is an Oracle
            application??  Feel free to let us know....

            Thanks,
            Dennis K. Paulsen

            --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
            <PC210018@e...> wrote:
            > I do like the enhancements this tool provides, but when I drag the
            icon over
            > the text box I need the info for, there is nothing displayed. 
            Which is true
            > for the other 50 or so controls on that form.  The only way I can
            get the
            > info for it is to switch to the window first and click the mouse
            in it to
            > give it the focus.  Then the tool with show the window information.

            > I thought every control had to have a handle, but these do no
            appear to
            > follow that rule.

            > Help!!
            > Phil
            >
            > -----Original Message-----
            > From: Dennis K. Paulsen [mailto:ctrondlpaulsden@y...]
            > Sent: Saturday, May 31, 2003 1:57 AM
            > To: perlguitest@yahoogroups.com
            > Subject: [perlguitest] Re: Help finding Controls on a form
            >
            >
            > Hello,
            >
            > The textbox control you seek could be hiding underneath several
            > child windows...  So, what follows is a link to a free tool to
            help
            > in identifying windows and their heirarchy, i.e. one just has to
            > drag the pointer from this tool over the desired control/window
            and
            > it will tell you important information:
            >
            > http://freespace.virgin.net/james.brown7/winspy.html
            > <http://freespace.virgin.net/james.brown7/winspy.html>
            >
            > This tool provides such information as the correct Window
            > Caption/Title, Class, Hierarchy, etc. of the desired control. 
            This
            > information can then be utilized in conjunction with
            > Win32::GUITest's FindWindowLike function to obtain the correct
            > handle to the control.
            >
            > Hope this helps.
            >
            > Regards,
            > Dennis K. Paulsen
            >
            > --- In perlguitest@yahoogroups.com, "Carner, Philipp W"
            > <PC210018@e...> wrote:
            > > I am new at this so please bear with me.  I am trying to fill in
            a
            > text box
            > > in one application (Remedy) with data from a Perl script.  I am
            > having
            > > trouble determining the handle of the text box control  that I
            > want to put
            > > the data into .  The destination form has about 100 controls on
            > it.  The
            > > code I am testing with is just trying to read the controls is
            > included below
            > > but does not show any of the individual controls except for
            > whatever edit
            > > box has the focus at the time.
            > > 
            > > Thanks for listening
            > > Phil Carner
            > > 
            > > 
            > > 
            > > #!/usr/bin/perl
            > > use Win32::GuiTest qw/GetChildWindows WMSetText WMGetText
            > WaitWindowLike
            > > IsWindowEnabled PushButton SendKeys FindWindowLike GetWindowText
            > > GetClassName GetChildDepth GetDesktopWindow
            SetForegroundWindow/;
            > > #system("start Aruser.exe");
            > > $title = "^PTC.*"; # title of window to search for
            > > WaitWindowLike(0, $title, 60);
            > > @remedy = FindWindowLike(0, $title);
            > > foreach(@remedy){print "Remedy window ". sprintf "%lx\n",$_;}
            > > $remedy = $remedy[0];
            > > @order = FindWindowLike($remedy,"FormView") ;
            > > foreach (@order){
            > >  print "Input Window Found " . sprintf "%lx\n",$_;
            > > }
            > > $order = $order[0];
            > > @wnds = GetChildWindows($order);
            > > foreach(@wnds){
            > >  $hexhandle = sprintf "%lx",$_ ;
            > >  print "$hexhandle  Window text =" . GetWindowText($_)  ;
            > >  print " class name =" . GetClassName($_) ;
            > >  print "  Value = " .  WMGetText($_) . "\n";
            > > }
            > > 
            > > The ouput is
            > > Remedy window 40574
            > >
            > > Input Window Found 105ec
            > >
            > > 1061c Window text = class name =SysTabControl32 Value =
            > >
            > > 1062e Window text =Page8 class name =AfxWnd42 Value = Page8
            > >
            > > 1062a Window text =Page7 class name =AfxWnd42 Value = Page7
            > >
            > > 10626 Window text =Page6 class name =AfxWnd42 Value = Page6
            > >
            > > 10622 Window text =Page5 class name =AfxWnd42 Value = Page5
            > >
            > > 1061e Window text =Page4 class name =AfxWnd42 Value = Page4
            > >
            > > 105f4 Window text = class name =AfxWnd42 Value =
            > >
            > > 10616 Window text = class name =SysTabControl32 Value =
            > >
            > > 10618 Window text =FLIP class name =AfxWnd42 Value = FLIP
            > >
            > > 10604 Window text = class name =SysTabControl32 Value =
            > >
            > > 10612 Window text =API Tab class name =AfxWnd42 Value = API Tab
            > >
            > > 1060e Window text =Oracle 11i Tab class name =AfxWnd42 Value =
            > Oracle 11i
            > > Tab
            > >
            > > 1060a Window text =CE Message Tab class name =AfxWnd42 Value =
            CE
            > Message
            > > Tab
            > >
            > > 10606 Window text =D1 Val Tab class name =AfxWnd42 Value = D1
            Val
            > Tab
            > >
            > > 105f8 Window text = class name =AfxWnd42 Value =
            > >
            > > 105f0 Window text = class name =SysTabControl32 Value =
            > >
            > > 105f6 Window text = class name =AfxWnd42 Value =
            > >
            > > 10600 Window text =Oracle NFO Activities class name =AfxWnd42
            > Value = Oracle
            > > NFO Activities
            > >
            > > 105fc Window text =FLIP NFO Activities class name =AfxWnd42
            Value
            > = FLIP NFO
            > > Activities
            > >
            > > 105f2 Window text = class name =AfxWnd42 Value =
            > >
            > > 105fa Window text = class name =AfxWnd42 Value =
            > >
            > > d059e Window text = class name =RICHEDIT Value = sss
            >
            >
            >
            > Yahoo! Groups Sponsor     
            >
            > ADVERTISEMENT

            >
            <http://rd.yahoo.com/M=244522.3313099.4604523.1261774/D=egroupweb/S=1
            7050069
            >
            51:HM/A=1595056/R=0/SIG=124fv1soh/*http://ashnin.com/clk/muryutaitake
            nattogy
            > o?YH=3313099&yhad=1595056> Click Here!     

            > <http://us.adserver.yahoo.com/l?
            M=244522.3313099.4604523.1261774/D=egroupmai
            > l/S=:HM/A=1595056/rand=146705483>      
            >
            > To unsubscribe from this group, send an email to:
            > perlguitest-unsubscribe@yahoogroups.com
            >
            >
            >
            > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
            > <http://docs.yahoo.com/info/terms/> .



            To unsubscribe from this group, send an email to:
            perlguitest-unsubscribe@yahoogroups.com



            Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
          Your message has been successfully submitted and would be delivered to recipients shortly.