Bug ID:  708  Add ability to add exceptions to window profile finder    
 
Created by phil on 2020-09-25 5:49 PM, 1308 days ago
Project:  XMBC
Organization:  Development
Category:  enhancement
Priority:  high
Assigned to:  phil  
Status:  new
Target Release:Future Consideration
Version:2.19
 
 

show inline images      show change history

 comment 3903 posted by phil on 2020-09-25 5:49 PM, 1308 days ago 

It would be useful to be able to say "Only if this child window is/is not present" in the window finder search...

See email from Ken

-----------------------------------------------------

Hi Ken,

 

Some good detective work there 😊. So they are child windows of the main window – that might make it easier.

But please be aware, it is NOT currently possible in XMBC to do this – I’m talking about having to change XMBC to do it (to add the exceptions thingy). Its not a particually small change either (well the detection will be, but the GUI for adding the exception, maybe a bit more complex) so Im afraid you are not able to do anything about this right now.

 

I will add it to the list of things to add to XMBC but I can make no promises yet as to how long it might take – the list is quite long and I havnt really had any time to look at XMBC over the last 6 months ☹.

 

Regards,

Phil

--------------------------

From:Ken
Sent: 25 September 2020 17:07
To: Phil Gibbons
Subject: Re: Action taken dependent on screen attribute like a scroll bar

 

Hi Phil,

 

Thanks very much for the quick response.  After reviewing the XMBC pdf manual, I honestly didn't think it would be possible or beyond the scope of XMBC.

 

Xyplorer did have a freeware version, but I don't think the developer offers it anymore. There is a free trial period and it can be portable just by placing everything in your own folder.  My copy is in D:\Tools\Xyplorer.

 

I used your version of Spy via the Find box and also used AU3_Spy.exe that comes along with Autohotkey.  The Autohotkey provides essentially the same info for the scroll bars like "ThunderRT6HScrollBar4" (vertical) (or 6 horizontal).  Using XMBC's Find both horizontal and vertical scroll bars are ThunderRT6HScrollBar for Class and ThunderRT6PictureBoxDC for Parent Class.

 

I couldn't find a version of Spy++ alone without installing Visual Studio which I'd rather not do.  So I searched and downloaded "Windows Detective" from SoundForge which seems to give quite a bit of information.  It clearly states that the scroll bars are children of the XYplorer's main list panel which is "ThunderRT6PictureBoxDC". It provides their handles, styles and dimensions, etc. Windows Detective has a Pick Window like your Find that you drag over the program.

 

So knowing that, you stated I would set up a profile for the child window such that if the child window is found (i.e., the scroll bars) then don't activate the my alternate scrolling if that child window is found.

 

I wanted to get back to you on this much, but I'll have to read up on the docs to get a handle on how to accomplish this (i.e., adding exception to the finder).

 

Thank you very much Phil,

 

Ken

 

---------------------------

Hi Ken,

 

I’m afraid this isn’t current possible… And I’m not sure it can be easily added to XMBC as is, it’s not that it’s not possible – but its such a specialised use case and profile detection is already one of the slow parts of XMBC and having to check all other windows of a process (or all other child windows of a window) may cause more problems than it is worth (for the majority).

 

However, a little more information may help. Do you know if the scroll bars are “children” of the main window (for which you can setup a profile) or of another window in the process (either in the active window’s ancestry or completely separate)? There are tools (other than XMBC’s window finder) to help find this out. I tend to use Spy++ (Its part of Microsoft’s visual studio development suite but it is also available separately I think). In there you can list the windows in the system in a tree, allowing you to see the hierarchy (may be useful to help find out more detail). I don’t know/have XYplorer but if its free (??) I could try it if you can describe what I need to do to get into the states you want to control.

 

It may be possible to add an “exception” type thing to the window finder – i.e. Don’t activate if the specified sub windows are found (as a child of the window) which would only introduce a performance hit IF the window matches the profile definition.

 

Regards,

Phil

--------------------------------

From:Ken
Sent: 25 September 2020 00:37
To: Phil
Subject: Action taken dependent on screen attribute like a scroll bar

 

Hi Phil

 

I was wondering if there is any way in which XMBC can detect if there is a window attribute like a scroll bar present for a particular program and then take assigned action(s) based on whether it's present or not.  For instance, I use a great file manager program, XYplorer and I'd like to be able to use the scroll bars normally if they are present on the the program's active window whether they are horizontal of vertical.  In this case using the XMBC's Find box, the program is "xyplorer.exe" and the class for the scroll bar is "ThunderRT6HScrollBar".  So for this example, if the program's scroll bar is present use its normal scroll up/down function.  If its not, perform my script actions assigned to numpad keys in XYplorer (e.g., like cycling through filters or views).

 

Is that something that's possible?  Or possibly there's another way to implement something similar. If not, would you consider implementing something like that if it's even possible? As it stands now, I've assigned my special functions to work only when the mouse cursor is in the lower right quadrant of XYplorer. If not, the normal scroll function is used.  I've also used XMBC layers in other cases.

 

I did skim through the forum and didn't find any thing specifically on that topic.

 

Thanks,

 

Ken