Desktop.Instance.Windows() only gets the windows IsKeyboardFocusable?

Oct 13, 2008 at 4:50 PM
As title. Using the following code will get the windows with IsKeyboardFocusable == true only?

            List<Window> windowList = Desktop.Instance.Windows();
            foreach (Window wnd in windowList)
            {
                Console.WriteLine(wnd.Title);
            }

I asked it because I have an uninstallation window (using InstallShield) but White failed to find it. I checked with UISpy and found the uninstallation window's IsKeyboardFocusable property is false. 

NOTE: it only happens on Core.dll with ver 0.1.7.0. If I use Core.dll with ver 0.1.6.0, it can find the uninstallation window.
Coordinator
Oct 16, 2008 at 10:09 AM
Can you Desktop.Instance.LogStructure() and send me the output.
Warning: please donot have too many windows open, it takes a long time to run when you do in on Desktop object.
Nov 5, 2008 at 4:10 AM
Sorry for the late response. The following is the log. What I care is the window naming "Corel GoldenGate".
-------------------------------------------------------------------------------------

[2008-11-05 11:52:20,592][INFO ] AutomationId:
ControlType: ControlType.Pane
Name:
HelpText:
Bounding rectangle: 0,0,1280,800
ClassName: #32769
IsOffScreen: False

    AutomationId:
    ControlType: ControlType.Pane
    Name:
    HelpText:
    Bounding rectangle: -2,772,1284,30
    ClassName: Shell_TrayWnd
    IsOffScreen: False

        AutomationId:
        ControlType: ControlType.Button
        Name: 開始
        HelpText:
        Bounding rectangle: 2,776,47,22
        ClassName: Button
        IsOffScreen: False

        AutomationId: 303
        ControlType: ControlType.Pane
        Name:
        HelpText:
        Bounding rectangle: 1111,776,167,22
        ClassName: TrayNotifyWnd
        IsOffScreen: False

            AutomationId: 303
            ControlType: ControlType.Pane
            Name: 上午 11:52
            HelpText:
            Bounding rectangle: 1210,778,66,18
            ClassName: TrayClockWClass
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.Pane
            Name:
            HelpText:
            Bounding rectangle: 1128,778,18,18
            ClassName: SysPager
            IsOffScreen: False

                AutomationId: 1504
                ControlType: ControlType.ToolBar
                Name: 通知區域
                HelpText:
                Bounding rectangle: 1128,778,18,18
                ClassName: ToolbarWindow32
                IsOffScreen: False

                    AutomationId: Item 6
                    ControlType: ControlType.Button
                    Name: Windows Live Messenger - 登入
                    HelpText: Windows Live Messenger - 登入
                    Bounding rectangle: 1128,778,18,18
                    ClassName:
                    IsOffScreen: False

            AutomationId:
            ControlType: ControlType.Pane
            Name:
            HelpText:
            Bounding rectangle: 1156,778,54,18
            ClassName: SysPager
            IsOffScreen: False

                AutomationId: 1505
                ControlType: ControlType.ToolBar
                Name: 系統控制區
                HelpText:
                Bounding rectangle: 1156,778,54,18
                ClassName: ToolbarWindow32
                IsOffScreen: False

                    AutomationId:
                    ControlType: ControlType.Button
                    Name: 99% 可用 (已接上電源,未充電)
                    HelpText: 99% 可用 (已接上電源,未充電)
                    Bounding rectangle: 1156,778,18,18
                    ClassName:
                    IsOffScreen: False

                    AutomationId: Item 2
                    ControlType: ControlType.Button
                    Name: 目前連線到: 無法辨識的網路 存取:  連線能力有限 corel.ics 存取:  本機和網際網路
                    HelpText: 目前連線到: 無法辨識的網路 存取:  連線能力有限 corel.ics 存取:  本機和網際網路
                    Bounding rectangle: 1174,778,18,18
                    ClassName:
                    IsOffScreen: False

                    AutomationId: Item 1
                    ControlType: ControlType.Button
                    Name: Volume
                    HelpText: Volume
                    Bounding rectangle: 1192,778,18,18
                    ClassName:
                    IsOffScreen: False

            AutomationId: 1502
            ControlType: ControlType.Button
            Name: NotificationChevron
            HelpText:
            Bounding rectangle: 1112,778,16,18
            ClassName: Button
            IsOffScreen: False

        AutomationId: 40965
        ControlType: ControlType.Pane
        Name:
        HelpText:
        Bounding rectangle: 54,776,1057,22
        ClassName: ReBarWindow32
        IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ToolBar
            Name: Quick Launch
            HelpText:
            Bounding rectangle: 63,776,142,22
            ClassName: ToolbarWindow32
            IsOffScreen: False

                AutomationId:
                ControlType: ControlType.Button
                Name: 顯示桌面
                HelpText: 顯示桌面
                Bounding rectangle: 63,776,23,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 1
                ControlType: ControlType.Button
                Name: Windows 檔案總管
                HelpText: Windows 檔案總管
顯示電腦上的檔案和資料夾。
                Bounding rectangle: 86,776,23,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 2
                ControlType: ControlType.Button
                Name: 命令提示字元
                HelpText: 命令提示字元
執行文字為主的 (命令列) 功能。
                Bounding rectangle: 109,776,23,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 3
                ControlType: ControlType.Button
                Name: Microsoft Office Outlook
                HelpText: Microsoft Office Outlook
                Bounding rectangle: 132,776,23,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 4
                ControlType: ControlType.Button
                Name: Internet Explorer
                HelpText: Internet Explorer
尋找和顯示網際網路上的資訊和網站。
                Bounding rectangle: 155,776,23,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 6
                ControlType: ControlType.Button
                Name: Windows Media Player
                HelpText: Windows Media Player
播放數位媒體,包括音樂、視訊、CD 和 DVD。
                Bounding rectangle: 178,776,23,22
                ClassName:
                IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ToolBar
            Name: 正在執行應用程式
            HelpText:
            Bounding rectangle: 218,776,852,22
            ClassName: ToolbarWindow32
            IsOffScreen: False

                AutomationId: Item 15
                ControlType: ControlType.Button
                Name: Corel GoldenGate
                HelpText: Corel GoldenGate
                Bounding rectangle: 218,776,160,22
                ClassName:
                IsOffScreen: False

                AutomationId: Item 1
                ControlType: ControlType.Button
                Name: 系統管理員: 命令提示字元 - FindWindow.exe 
                HelpText: 系統管理員: 命令提示字元 - FindWindow.exe 
                Bounding rectangle: 381,776,160,22
                ClassName:
                IsOffScreen: False

            AutomationId:
            ControlType: ControlType.Pane
            Name: TF_FloatingLangBar_WndTitle
            HelpText:
            Bounding rectangle: 1083,776,28,22
            ClassName: CiceroUIWndFrame
            IsOffScreen: False

    AutomationId:
    ControlType: ControlType.Window
    Name: 系統管理員: 命令提示字元 - FindWindow.exe 
    HelpText:
    Bounding rectangle: 228,0,828,447
    ClassName: ConsoleWindowClass
    IsOffScreen: False

        AutomationId: Vertical ScrollBar
        ControlType: ControlType.ScrollBar
        Name: 垂直捲軸
        HelpText:
        Bounding rectangle: 1034,25,16,416
        ClassName:
        IsOffScreen: False

            AutomationId: SmallDecrement
            ControlType: ControlType.Button
            Name: 往後移動短距離
            HelpText:
            Bounding rectangle: 1034,25,16,16
            ClassName:
            IsOffScreen: False

            AutomationId: LargeDecrement
            ControlType: ControlType.Button
            Name: 往後移動長距離
            HelpText:
            Bounding rectangle: 1034,41,16,52
            ClassName:
            IsOffScreen: False

            AutomationId: Thumb
            ControlType: ControlType.Thumb
            Name: 捲動方塊
            HelpText:
            Bounding rectangle: 1034,93,16,8
            ClassName:
            IsOffScreen: False

            AutomationId: LargeIncrement
            ControlType: ControlType.Button
            Name: 往前移動長距離
            HelpText:
            Bounding rectangle: 1034,101,16,324
            ClassName:
            IsOffScreen: False

            AutomationId: SmallIncrement
            ControlType: ControlType.Button
            Name: 往前移動短距離
            HelpText:
            Bounding rectangle: 1034,425,16,16
            ClassName:
            IsOffScreen: False

        AutomationId: TitleBar
        ControlType: ControlType.TitleBar
        Name: 系統管理員: 命令提示字元 - FindWindow.exe 
        HelpText:
        Bounding rectangle: 232,4,820,19
        ClassName:
        IsOffScreen: False

            AutomationId: SystemMenuBar
            ControlType: ControlType.MenuBar
            Name: 系統功能表列
            HelpText:
            Bounding rectangle: 232,4,18,18
            ClassName:
            IsOffScreen: False

                AutomationId: Item 1
                ControlType: ControlType.MenuItem
                Name: 系統
                HelpText:
                Bounding rectangle: 232,4,18,18
                ClassName:
                IsOffScreen: False

            AutomationId: Minimize
            ControlType: ControlType.Button
            Name: 最小化
            HelpText:
            Bounding rectangle: 997,3,20,20
            ClassName:
            IsOffScreen: False

            AutomationId: Maximize
            ControlType: ControlType.Button
            Name: 最大化
            HelpText:
            Bounding rectangle: 1015,3,20,20
            ClassName:
            IsOffScreen: False

            AutomationId: Close
            ControlType: ControlType.Button
            Name: 關閉
            HelpText:
            Bounding rectangle: 1033,3,20,20
            ClassName:
            IsOffScreen: False

    AutomationId:
    ControlType: ControlType.Pane
    Name: Corel GoldenGate
    HelpText:
    Bounding rectangle: 0,0,1280,800
    ClassName: InstallShield_Win
    IsOffScreen: False

        AutomationId:
        ControlType: ControlType.Window
        Name: Corel GoldenGate
        HelpText:
        Bounding rectangle: 646,344,504,379
        ClassName: #32770
        IsOffScreen: False

            AutomationId: 52
            ControlType: ControlType.Text
            Name:
            HelpText:
            Bounding rectangle: 649,366,498,59
            ClassName: Static
            IsOffScreen: False

            AutomationId: 9
            ControlType: ControlType.Button
            Name: Cancel
            HelpText:
            Bounding rectangle: 1057,685,75,23
            ClassName: Button
            IsOffScreen: False

            AutomationId: 1
            ControlType: ControlType.Button
            Name: Next >
            HelpText:
            Bounding rectangle: 972,685,75,23
            ClassName: Button
            IsOffScreen: False

            AutomationId: 710
            ControlType: ControlType.Text
            Name: Welcome to the Corel GoldenGate Setup Maintenance program. This program lets you modify the current installation. Click one of the options below.
            HelpText:
            Bounding rectangle: 673,431,447,46
            ClassName: Static
            IsOffScreen: False

            AutomationId: 12
            ControlType: ControlType.Button
            Name: < Back
            HelpText:
            Bounding rectangle: 898,685,75,23
            ClassName: Button
            IsOffScreen: False

            AutomationId: 1300
            ControlType: ControlType.Text
            Name: Welcome to the Corel GoldenGate Setup Maintenance program. This program lets you modify the current installation. Click one of the options below.
            HelpText:
            Bounding rectangle: 712,668,432,2
            ClassName: Static
            IsOffScreen: False

            AutomationId: 50
            ControlType: ControlType.Text
            Name: Welcome
            HelpText:
            Bounding rectangle: 664,371,330,16
            ClassName: Static
            IsOffScreen: False

            AutomationId: 1002
            ControlType: ControlType.Image
            Name: Welcome
            HelpText:
            Bounding rectangle: 721,522,32,32
            ClassName: Static
            IsOffScreen: False

            AutomationId: 1003
            ControlType: ControlType.Image
            Name:
            HelpText:
            Bounding rectangle: 721,598,32,32
            ClassName: Static
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.Pane
            Name:
            HelpText:
            Bounding rectangle: 649,366,498,58
            ClassName: ISWndImgCls
            IsOffScreen: False

            AutomationId: 1301
            ControlType: ControlType.Text
            Name:
            HelpText:
            Bounding rectangle: 649,425,496,2
            ClassName: Static
            IsOffScreen: False

            AutomationId: 302
            ControlType: ControlType.RadioButton
            Name: Repair
            HelpText:
            Bounding rectangle: 694,494,162,15
            ClassName: Button
            IsOffScreen: False

            AutomationId: 303
            ControlType: ControlType.RadioButton
            Name: Remove
            HelpText:
            Bounding rectangle: 694,571,186,15
            ClassName: Button
            IsOffScreen: False

            AutomationId: 51
            ControlType: ControlType.Text
            Name: Modify, repair, or remove the program.
            HelpText:
            Bounding rectangle: 673,390,320,31
            ClassName: Static
            IsOffScreen: False

            AutomationId: 702
            ControlType: ControlType.Text
            Name: Reinstall all program components installed by the previous setup.
            HelpText:
            Bounding rectangle: 766,525,365,33
            ClassName: Static
            IsOffScreen: False

            AutomationId: 703
            ControlType: ControlType.Text
            Name: Remove all installed components.
            HelpText:
            Bounding rectangle: 766,605,255,16
            ClassName: Static
            IsOffScreen: False

            AutomationId: TitleBar
            ControlType: ControlType.TitleBar
            Name: Corel GoldenGate
            HelpText:
            Bounding rectangle: 649,347,498,19
            ClassName:
            IsOffScreen: False

                AutomationId: SystemMenuBar
                ControlType: ControlType.MenuBar
                Name: 系統功能表列
                HelpText:
                Bounding rectangle: 0,0,0,0
                ClassName:
                IsOffScreen: True

                    AutomationId: Item 1
                    ControlType: ControlType.MenuItem
                    Name: 系統
                    HelpText:
                    Bounding rectangle: 0,0,0,0
                    ClassName:
                    IsOffScreen: False

                AutomationId: Close
                ControlType: ControlType.Button
                Name: 關閉
                HelpText:
                Bounding rectangle: 1128,346,20,20
                ClassName:
                IsOffScreen: False

    AutomationId:
    ControlType: ControlType.Pane
    Name: Program Manager
    HelpText:
    Bounding rectangle: 0,0,1280,800
    ClassName: Progman
    IsOffScreen: False

        AutomationId: 1
        ControlType: ControlType.List
        Name: 桌面
        HelpText:
        Bounding rectangle: 0,0,1280,772
        ClassName: SysListView32
        IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: 資源回收筒
            HelpText:
            Bounding rectangle: 0,0,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Revo Uninstaller
            HelpText:
            Bounding rectangle: 0,85,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Google 地球
            HelpText:
            Bounding rectangle: 0,170,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Adobe Reader 8
            HelpText:
            Bounding rectangle: 0,255,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Notepad++
            HelpText:
            Bounding rectangle: 0,340,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: QuickTime Player
            HelpText:
            Bounding rectangle: 0,425,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: RealPlayer
            HelpText:
            Bounding rectangle: 0,510,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Skype
            HelpText:
            Bounding rectangle: 0,595,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: GoToMeeting
            HelpText:
            Bounding rectangle: 0,680,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: GoToWebinar
            HelpText:
            Bounding rectangle: 75,0,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Sonet - 捷徑
            HelpText:
            Bounding rectangle: 75,85,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: UISpy
            HelpText:
            Bounding rectangle: 75,170,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: VPN Client
            HelpText:
            Bounding rectangle: 75,255,74,51
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Windows Live Messenger
            HelpText:
            Bounding rectangle: 75,340,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: GGCleaner.exe - 捷徑
            HelpText:
            Bounding rectangle: 75,425,75,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Corel GG-VideoAP
            HelpText:
            Bounding rectangle: 75,510,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Corel GG-PhotoAP
            HelpText:
            Bounding rectangle: 75,595,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: Corel GG-BurnAP
            HelpText:
            Bounding rectangle: 75,680,74,63
            ClassName:
            IsOffScreen: False

            AutomationId:
            ControlType: ControlType.ListItem
            Name: FindWindow.exe - 捷徑
            HelpText:
            Bounding rectangle: 150,0,74,63
            ClassName:
            IsOffScreen: False

 

Coordinator
Nov 9, 2008 at 11:35 AM
The reason you cannot see the window is because that window is not directly on the desktop but is inside a Pane.
This needs to be taken care of. I would look into this in coming releases of white
Coordinator
Nov 9, 2008 at 11:44 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.