← Back to team overview

sikuli-driver team mailing list archive

[Bug 1461093] [NEW] switchApp() cannot focus to Outlook

 

Public bug reported:

1.1.0(2015-06-02_01:00nightly)/Windows6.1/Java8(64)1.8.0_45-b15
OS: Windows 7 Professional SP1 64 bit

+++ running this Java
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Outlook:
Microsoft Outlook 2013 (15.0.4719.1000) 32 bit

Description: 
The code snippet below cannot focus on an already opened (not minimized) Outlook instance. (I use it as a test to try nightly versions.) A few applications can be switched to, but O365 apps generally cannot. (The image file is a little icon from the application window, that is always present if the window can be seen.)

The output is "If you have...", so ol != None, but the window is not
brought to the front. Another interesting subject is the highlighted
region, usually the last focused window.

-----

Debug.on(3)

ol = switchApp('Outlook')
wait(2)
if ol == None or not ol.window():
    popError("Still cannot use the switchApp() / focus() function... :(")
    exit(1)

try:
    mol = find("1433249332978.png")
    popup("switchApp() / focus() works! :)")
except:
    ol.focusedWindow().highlight()
    popup("If you have Outlook window on top, then switchApp() / focus() works,\n" \ 
            "but find() cannot see it...")
 
-----

Debug log:
[debug] Jython: requested to use as default region: R[0,0 1680x1050]@S(0)

[debug] JythonScriptRunner: runPython: running script from IDE: C:/Users/####/SikuliX-1.1/TEST-switchAppFocus.sikuli
[debug] WinUtil.getApp: !Outlook

[debug] App.immediate: Outlook
[debug] App.create: [5588:OUTLOOK.EXE]

[debug] Region: find: waiting 3,0 secs for 1433249332978.png to appear in R[0,0 1680x1050]@S(0)
[debug] Image: reused: 1433249332978.png (file:/C:/Users/####/SikuliX-1.1/TEST-switchAppFocus.sikuli/1433249332978.png)
[debug] Region: checkLastSeen: not there

[debug] Region: find: 1433249332978.png has not appeared [677 msec]

[debug] Sikulix: cleanUp: 0

-----

Additional comments:
I am now using a workaround to get the focus working:

import os

def focusAppWorkaround(titlePart):
    os.system(r'"C:\Full\path\to\appactivate.vbs" "' + titlePart + '"')


' appactivate.vbs
Set objShell = WScript.CreateObject("WScript.Shell")
Param0 = ""
If (WScript.Arguments.Count > 0) Then
  Param0 = WScript.Arguments.Item(0)
  objShell.AppActivate Param0
End If

** Affects: sikuli
     Importance: Undecided
         Status: New

** Attachment added: "A small Outlook icon from the application window."
   https://bugs.launchpad.net/bugs/1461093/+attachment/4408660/+files/1433249332978.png

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1461093

Title:
  switchApp() cannot focus to Outlook

Status in Sikuli:
  New

Bug description:
  1.1.0(2015-06-02_01:00nightly)/Windows6.1/Java8(64)1.8.0_45-b15
  OS: Windows 7 Professional SP1 64 bit

  +++ running this Java
  java version "1.8.0_45"
  Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

  Outlook:
  Microsoft Outlook 2013 (15.0.4719.1000) 32 bit

  Description: 
  The code snippet below cannot focus on an already opened (not minimized) Outlook instance. (I use it as a test to try nightly versions.) A few applications can be switched to, but O365 apps generally cannot. (The image file is a little icon from the application window, that is always present if the window can be seen.)

  The output is "If you have...", so ol != None, but the window is not
  brought to the front. Another interesting subject is the highlighted
  region, usually the last focused window.

  -----

  Debug.on(3)

  ol = switchApp('Outlook')
  wait(2)
  if ol == None or not ol.window():
      popError("Still cannot use the switchApp() / focus() function... :(")
      exit(1)

  try:
      mol = find("1433249332978.png")
      popup("switchApp() / focus() works! :)")
  except:
      ol.focusedWindow().highlight()
      popup("If you have Outlook window on top, then switchApp() / focus() works,\n" \ 
              "but find() cannot see it...")
   
  -----

  Debug log:
  [debug] Jython: requested to use as default region: R[0,0 1680x1050]@S(0)

  [debug] JythonScriptRunner: runPython: running script from IDE: C:/Users/####/SikuliX-1.1/TEST-switchAppFocus.sikuli
  [debug] WinUtil.getApp: !Outlook

  [debug] App.immediate: Outlook
  [debug] App.create: [5588:OUTLOOK.EXE]

  [debug] Region: find: waiting 3,0 secs for 1433249332978.png to appear in R[0,0 1680x1050]@S(0)
  [debug] Image: reused: 1433249332978.png (file:/C:/Users/####/SikuliX-1.1/TEST-switchAppFocus.sikuli/1433249332978.png)
  [debug] Region: checkLastSeen: not there

  [debug] Region: find: 1433249332978.png has not appeared [677 msec]

  [debug] Sikulix: cleanUp: 0

  -----

  Additional comments:
  I am now using a workaround to get the focus working:

  import os

  def focusAppWorkaround(titlePart):
      os.system(r'"C:\Full\path\to\appactivate.vbs" "' + titlePart + '"')

  
  ' appactivate.vbs
  Set objShell = WScript.CreateObject("WScript.Shell")
  Param0 = ""
  If (WScript.Arguments.Count > 0) Then
    Param0 = WScript.Arguments.Item(0)
    objShell.AppActivate Param0
  End If

To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1461093/+subscriptions


Follow ups

References