05-03-2013 12:13 PM - edited 05-03-2013 12:19 PM
Just wondering if the Windows Message Queue will ever be updated to support 64-bit Windows? It is some really neat low level tools on windows but only works fully in 32 bit Windows.
I'm looking to detect when a window is resized, or has a mouse down event, based on its HWND not VI reference. This is very easy to do with this library if you don't use 64 bit Windows. Any other tips on accomplishing this is appreciated.
EDIT: Attatched is a VI that runs in LabVIEW 2011 32 bit. On Windows 7 64-bit the "WM_Size" is not generated when the panel is resized. The mouse event does get generated for some reason. (this VI relies on VIs in the library linked earlier)
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
16 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
05-06-2013 12:18 PM
Hi Hoovah,
I'm glad to see you like the low level tools offered by the Windows Message Queue library! Unfortunately, we don't know ahead of time what new libraries will be released. I can't offer any timeline for if the library will ever be supported in 64-bit Windows.
Have you worked with Event-Driven Programming in LabVIEW before? There are event options for mouse events, as well as a Pane Size Event. You could use an event structure and a few different events to create an application that would react to mouse movements and window resizing.
I hope this helps!
05-06-2013 03:56 PM
Yes I'm familiar with Event Driven architectures but in my post I explicitly mentioned how I wanted to reference a window by HWND and not VI Reference. But also there user events and dynamic registering of events do not replacte all the functionality in this library. The obvious one is the mouse scroll event. In LabVIEW the only thing that can be done is polling the mouse every x number of milliseconds to see if the scroll happened.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
16 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
05-07-2013 09:40 AM
Hi Hoovah,
I'm sorry, I saw that you said you would like to use HWND, but since that library isn't supported in Windows 64 bit I was trying to offer a possible work-around. I understand that the LabVIEW events can't do exactly what the Windows Message Queue library can, but if you give me more information we can try to make them work for your application. Are you running into specific issues in your application where LabVIEW events don't meet your needs?
As well, the underlying DLL code is offered on our website for the Windows Message Queue Library. If you are comfortable in C++, you could try to modify the DLL to offer the functions you need.
Please let me know if I can offer any further assistance. Thanks,
05-07-2013 04:35 PM
@Emily-C wrote:
Hi Hoovah,
Are you running into specific issues in your application where LabVIEW events don't meet your needs?
Yes specifically when it is not a LabVIEW front panel that I am trying to detect changes to. I would like to be able to detect when a window is resized like Notepad. Something not LabVIEW. This is possible with the Windows Message Queue Library but not with LabVIEW events.
I think I may have a solution anyway and I'll need more time to test, but I can put this other window (Notepad for example) into a VI, then remove the ability to resize Notepad, but instead resize Notepad when the VI it is in gets resized. Then I can detect when the window is resized because I can be detecting a Panel Size? event (or Pane) on the VI that Notepad is in. This is alot of extra headache and things to keep track of but do able. But this also adds other flexibilities that I think I may prefer.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
16 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
05-07-2013 06:31 PM
Use a .net text box. It's similar to Notepad.
05-08-2013 07:33 AM
@zou wrote:
Use a .net text box. It's similar to Notepad.
Thanks for the tip, but Notepad was just an example. What about the DMM Soft Front Panel? or Excel? Or MSPaint? Skype? Task Manager? 7-Zip? Explorer Window? Calculator?
Using this library it is easy to know when any window in the system is resized, or had any other event take place that is supported by it.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
16 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
05-08-2013 10:27 AM
Hi Hooovahh,
Thank you for your feedback. Unfortunately at this point in time I can't offer a workaround that will do exactly what you want in 64 bit. If you're interested in seeing this in the future, please post a suggestion on the Idea Exchange: http://forums.ni.com/t5/ideas/v2/ideaexchangepage/blog-id/labviewideas
Thank you,
02-17-2015 01:43 PM
For anyone interested in this I posted 32-bit and 64-bit version of this library here
02-17-2015 02:06 PM