Thing is, there was no error. If there had been, I would of course have 
included it in my initial message. All I got, was that the desired window did 
not get activated and focused. No error, no other message. That's why I was so 
puzzled. 

  ----- Original Message ----- 
  From: Doug Geoffray 
  To: [email protected] 
  Sent: Monday, January 30, 2012 6:39 PM
  Subject: Re: Activating a window - help needed


  David,

  Since the line you had would of generated an error and a line number, it 
would be helpful to let us know the exact error and line of code.  That saves 
us from having to think of all the possible problems that a script could have 
and focus on the real problem at hand.

  Doug

  On 1/30/2012 12:34 PM, David wrote: 
    Thanks Doug. The Desktop command was the problem. I changed it to 
DesktopWindow, and everything worked right away. Got me a couple of steps 
further in the development. Thanks again.

      ----- Original Message ----- 
      From: Doug Geoffray 
      To: [email protected] 
      Sent: Monday, January 30, 2012 3:06 PM
      Subject: Re: Activating a window - help needed


      David,

      Along with Aaron's comment, it would be nice to know exactly the problem 
you are getting.  Are you getting a script error?  Is the window just not 
getting activated and/or focused?  Are you sure the overlap of the window you 
have can be activated?

      I did see in your code you have:

      Set FWin = Desktop.Children.Find( WinHandle )

      This should of failed because Desktop is not a property of Application.  
I'm sure you meant:

      Set FWin = DesktopWindow.Children.Find( WinHandle )

      So you should of gotten an error on that line.  Something like "Object 
required: 'desktop'"

      But just to show what you are trying is possible, I launched Notepad, 
brought up immed and typed the following 2 lines (The second line is really 2 
lines of VBScript but I needed the activate and focus to be on the same line):

      Set myWindow = DesktopWindow.Children.FilterByClassAndModule("edit", 
"notepad")(1)
      myWindow.Overlap.Activate : myWindow.Focus

      I purposefully looked for the edit box of Notepad.  After finding that 
window I activated its overlap and than focused the edit itself.  This worked 
perfectly.

      Doug

      On 1/29/2012 7:22 PM, David wrote: 
        I am attempting to write a small  app, that has a feature of 
""Switching" to a given window that is already open on my computer. Let's just 
for the example say, that I have a Notepad window open on my system. My app 
scrolls through all the Children windows of the desktop, and finds the one for 
Notepad. I then let it derive the handle for that window. So far, the app works 
just fine.

        The problem arises when I try to Activate, and Focus the newly found 
Window. I have been looking on a couple of other apps, that I thought could 
have lead me in right direction, but without any luck (they simply got too 
complicated for my brain). Then also, I have been spending a couple of hours 
with that App developers Reference under the Help menu in WE. Still I don't 
grasp why my app won't switch to the found window. 

        Here is the troublesome code, that I cannot get to work. What am I 
doing wrong? Maybe I am totally astray here? Thanks for your feedback:

        Dim WinHandle
        ' My app search for the window I want, and fills in this variable with 
the Window Handle, just fine. I won't copy that few lines here. 

        ' Then comes the section I apparently have got wrong:
        Sleep 2000 'Just tried to give the app enough time here.
        dim FWin: Set FWin = Desktop.Children.Find( WinHandle )
        ' This line, I thought, would find the correct window, and make it 
ready for activation.
        FWin.Overlap.Activate
        ' To Activate the Window, or it's Overlap.
        FWin.Focus
        ' I had hoped, this would have focused me on the actual window. But 
such is not the case.
        Sleep 1000

        ' A last sleep command, just to let things settle.


        End of code snip

Reply via email to