LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Windows Message Queue 64-Bit Support

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)

Message 1 of 32
(4,780 Views)

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!

Emily C
Applications Engineer
National Instruments
0 Kudos
Message 2 of 32
(4,736 Views)

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.

0 Kudos
Message 3 of 32
(4,714 Views)

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,

Emily C
Applications Engineer
National Instruments
0 Kudos
Message 4 of 32
(4,698 Views)

@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.

0 Kudos
Message 5 of 32
(4,686 Views)

Use a .net text box.  It's similar to Notepad.

 

George Zou
0 Kudos
Message 6 of 32
(4,670 Views)

@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.

0 Kudos
Message 7 of 32
(4,657 Views)

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,

Emily C
Applications Engineer
National Instruments
0 Kudos
Message 8 of 32
(4,641 Views)

For anyone interested in this I posted 32-bit and 64-bit version of this library here

Message 9 of 32
(4,380 Views)

@domasm wrote:

For anyone interested in this I posted 32-bit and 64-bit version of this library here


That's a nice library.  Kudos


"Should be" isn't "Is" -Jay
0 Kudos
Message 10 of 32
(4,367 Views)