Trigger an action on mouseover

x64 Replacement/Alternative to Microsoft's IntelliMouse application.
Forum rules
Please read the forum rules before posting for the first time.
The more information you can provide, the quicker and more accurately someone can help.
NOTE: To reduce spam, new users can not post links, files or images until they have at least 4 posts.
Post Reply
dvertz
New User
Posts: 8
Joined: Tue Jan 07, 2020 2:15 am

Trigger an action on mouseover

Post by dvertz »

XMBC Version: XMBC Version v2.18.8 (x64) Installed
Windows Version: Microsoft Windows 8.1 Professional Edition (build 9600), 64-bit
Mouse Information (brand/model): Redragonlite Perdition Lazer Gaming 18 Button Mouse Model M-901
(yes, I realize that XMBC will only work with 3 of those buttons)
Relevant Computer Information (CPU, RAM etc): AMD FX™-6100 Six-Core,3.3 GHz, 8GB RAM
How long have you used XMBC?: about 6 months
What language and keyboard layout do you use in Windows?: English 104 Logitech keyboard

Clear description of the problem - try and include as much information as possible, including what button and mappings you are having problems with (if applicable).:

In the thread for XMBC 2.19 Beta, Phil has shown a list of items for the "To Do".
The one I was hoping to ask for was in the list, way down at the bottom.
585 - Add ability to trigger an action when the profile changes (without having to click)

I was so disappointed that its considered "less likely to be looked at". It just seemed so simple. But as I continued to look for work-arounds and thought more about the possible conflicts with other features, the more I realized it would not be as simple as adding another drop list like the drop lists for button control.

I have a profile set for ACAD.EXE. And it is mostly for the debounce feature. It works perfectly for that. But basically, all I wanted to do was send the {capslock} when the mouse moved over Autocad (we only use all caps in this program). And then set the Default profile to send it again. That way when I move the mouse to Outlook to type an email, it will return the caps lock to normal case.

One thing I tried was to use the send simulated keys {capslock}. But several problems exist with that. First, each time the button is pressed it just toggles the state. Next was an issue with retaining the original button function. I didn't go in depth on trying to many settings as toggling was going to do the trick.

Another thing I tried was to run an application. I found an EXE on the internet that by just running the EXE with a parameter, of ON or OFF, you could change the state to EXACTLY the state you wanted. Perfect. But oops, that won't work because I cannot retain the original button function.

Next I thought about someway Button Chording could resolve the original button function problem. But that is just backwards from what is needed. Chording allows you to assign one thing to two buttons. What I need is a way to assign two things to one button. And that is where I started looking at the Button Held method. However, that too doesn't do the trick because the button has to be held for a minimum of 50ms.

Can anyone think of something that I haven't already tried?
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Trigger an action on mouseover

Post by phil »

Well firstly, its not that I wont do it, its just not going to get into 2.19 - Ive hit a block on a big item that effectivly needs a massive internal change, and therefore 2.19 is going out shortly, then 2.20 will concentrate on that big item and a few other items (including this one). If I keep the list small (do not add any new items other than bug fixes), its more likely to get done in 2.20 and although there is a biggie, 2.20 is less likely to take as long (he says tentatively!).

One of the reasons it was listed as (less likely) was because it required a little more thinking about that the others - maybe it will be easy once that thinking has been done (unlike some of the items I thought would be quick and easy in 2.19!), maybe not.

Next, you do realize that there are discrete capslock ON/OFF simkeys ??? {CAPSLOCKON} {CAPSLOCKOFF} so maybe you can do that instead of toggle.
Regarding leaving the original button state... You could use the "Block original button" tick-box - essentially UN-TICK it. Then the simulated input will be sent but the button will still perform as usual. <-- This may be the simple solution!

I hope that gives you some ideas - let me know how you get on!
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
dvertz
New User
Posts: 8
Joined: Tue Jan 07, 2020 2:15 am

Re: Trigger an action on mouseover

Post by dvertz »

Phil,

I am sorry, I didn't mean to imply that I thought you wouldn't do it. And I did say that I realized it was going to be harder than I had originally thought. So I completely understand why it wasn't going to make it into 2.19. But I did think it might be further away than 2.20.

I have to say that I did not realize that there was the {CAPSLOCKOFF} and {CAPSLOCKON}. I had to scroll the help section and by-george there it was. Thank you for that. Now I see there are all sorts of options.

So I tried that and it work perfectly. The little CapsLock Light on the Keyboard comes on then goes off just like I set it to do per each profile.

My next thought was, it still doesn't change the lighting effect on the RGB keyboard. Here I have two options. I can let the iCUE software change the lighting (so easy to get out of sync) or set a key combination in iCUE and send those keys with the {CAPSLOCKON}. I chose the {PGUP} key. While I found through testing your XMBC works perfectly to send the keys, it does not initiate the keyboard key and therefore the lighting never changes. But this is my issue to resolve and not yours as XMBC does exactly what its supposed to do.

I will dive in deeper later on. Currently I have to get some work done.

Thanks.
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Trigger an action on mouseover

Post by phil »

I don't know how iCue works, but could you choose a key that effectively does nothing... F13 - F24 springs to mind instantly... They are pretty much never on any keyboard and not used by any Windows programs AFAIK but XMBC can send them and if iCue sees them then that would be perfect!

For what its worth, in 2.19 there is a new dropdown in the simkeys window so you can select tags from a menu (or hold it down and press the key to insert the tag) - another way to find them (but in this case, as you found, they are there when you scroll down :)).
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
dvertz
New User
Posts: 8
Joined: Tue Jan 07, 2020 2:15 am

Re: Trigger an action on mouseover

Post by dvertz »

Phil,

Thanks for making me think.
And now that I have, I realize how dumb I was. My CapsLock key is tied to the profile. If sending {CAPSLOCKON} doesn't change the iCUE profile, then setting the Page Up as an iCUE profile and sending the key {PGUP} would be the exact same thing. It must be that iCUE is tied to the physical key instead of the system interrupts. And therefore, using any other key that is not a physical one also would not work. But thanks for the suggestion.

I started searching if a there was a windows shortcut key (something like CTRL+SHIFT+P) but from what I have found so far that does not exist. Therefore, using XMBC to send those keys would not help what I was trying to accomplish. I will now take this topic to the iCUE forums.
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Trigger an action on mouseover

Post by phil »

I wonder if there is any way to do this with iCUE programatically - as in launch a program with a commandline argument?
If there was, you could use the {RUN} tag but its clutching at straws a bit - I don't have a corsair keyboard/mouse so I dont have iCUE to try anything.
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
dvertz
New User
Posts: 8
Joined: Tue Jan 07, 2020 2:15 am

Re: Trigger an action on mouseover

Post by dvertz »

Phil,
I have been running this for about a week. Everything worked perfectly for the first 4 days. Then came the situation I had not thought about.

I set XMBC to use the {CAPSLOCKOFF} on the left mouse click with the default profile and use the {CAPSLOCKON} on the left mouse click with the ACAD profile. Both were, of course, set to allow original mouse output.

Then I needed Caps Lock to be on in Notepad as I selected different parts with the mouse to edit. Naturally, each click turned off the Caps Lock (as it should).

So I started thinking again. Oh, no, I shouldn't be thinking.

With the planned activate on hover, how would it work when moving over certain windows? Lets say I am in Outlook writing email and I move to Notepad. Does that trigger the Default profile again? That, would run the {CAPSLOCKOFF} which wouldn't be desired. What if the screen goes into screensaver or power saving mode? Does that trigger a profile change? That, I think I might like, as the Password entry would have the Caps Lock off. And I would suppose that if I am using Notepad and pressed Caps Lock on the Keyboard, that it wouldn't get changed until I either pressed the key again or I moved over a profile that sent the {CAPSLOCKON}.

But again, I am just thinking. And in the process, attempting to give you some food for thought in your design.
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Trigger an action on mouseover

Post by phil »

As things stand (and I havn't yet implemented (or though much about) the send on profile activation) the profile is not "activated" when moving between windows - only IF there is a new profile triggered. So moving form outlook to notepad would do nothing (assuming there were neither an outlook or a notepad profile)... As for the logon screen I don't think XMBC actually works when that screen is active as its a protected (different) session, not your user session so effectively XMBC is not loaded into that session (but I could be wrong - I haven't tried it for a while).. The same applies to the CTRL+ALT+DEL screen 0 XMBC is not active when that is shown I think....
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
Post Reply