05-29-2017 06:27 AM
Hello together,
my newest pogram is to be a visualisation of several instances running in an automation process. As usual, there has to be a service mode, to configure some variables. Herefor, the user has to sign in with a password. The Problem is, the service computer is an all-in-one panel with touchscreen, no keyboard connected. So i need a popup keyboard by touching the string input field.
I configured windows to popup the onscreen keyboard and it worked in windows instances as explorer. Indeed Labview's string input is not recognized by windows in such a way. Is there any common solution by Labview solving this touchscreen popup keyboard problem?
Thx for help
Edit: Enable windows taskbar and manually popup the onscreen keyboard is not a solution for my problem as the hole thing has to run in fullscreen mode, so the user may not be able to enter any other programs.
Solved! Go to Solution.
05-29-2017 08:17 AM
Use the Mouse up event of each editable control to launch a virtual keyboard vi (check for example this link).
05-29-2017 08:41 AM
Thx, but that would be a rather complicate solution. Is there any other way? Isn't it possible to teach the labview string input for windows?
05-29-2017 09:00 AM
AFAIK, no. LabVIEW controls are not native Windows controls. Remember that LabVIEW is a cross-platform programming tool, so its "objects" would not be managed directly form the host OS.
In the FP palette there are so called "System controls". You may try a quick test with one of these. But I think they only differ from the other controls only in terms of appearence.
05-29-2017 11:50 AM
LabVIEW seems to take input from my Win7 on screen keyboard. Maybe you need to return focus to the LabVIEW program after launching the keyboard?
05-29-2017 05:09 PM - edited 05-29-2017 05:16 PM
It does take input of course, since the on screen keyboard in Windows simply emulates a real keyboard, sending the appropriate events to the Windows system to be distributed to whatever application has the key focus at that moment.
The problem is that he wants the OSK to open automatically when the users selects a string control but in order to do that he has to intercept the mouse down event as already explained earlier and make the OSK appear. And no there is no other way to do this. The Windows system does not know anything about a LabVIEW frontpanel beyond the panel window itself, so can't detect when a user would select any LabVIEW control.
It's some extra work, but normaly on a touch screen UI you can't really have several dozen of controls anyhow so the effort is pretty minimal to add that extra code. And you don't need to create one event case per control either, but can configure an event frame to handle the same event for multiple controls at the same time
05-30-2017 01:43 AM
Thx for your help guys, seems there is no way around this labview keyboard. I will try it.
02-14-2019 09:32 AM
FYI
There is another method to use the virtual keyboard in windows 10. You can use .net control elements. Just use a .net container and select a control. Now it is possible to enter e.g. a text via windows virtual keyboard.
Regards
Kay
12-02-2019 11:32 PM
Hi
I have same issue, i tried with system icon but its not working, can someone help me out
12-04-2019 03:07 AM
Well there is of course a way to do this without actually having to create the neccessary event cases for mouse events everytime. It is however far beyond LabVIEW beginners level to make that work. It involves writing a VI library that creates a background task with a dynamically launched VI. Write another VI that creates an instance of the background VI and pass it an array of control refnums that you would want to have register for the OSK keyboard (or pass the VI refnum if you want to have all controls register although you don't really need the OSK for buttons for instance. The background VI can register an event structure for certain events and then perform something in there, such as checking if the OSK is already active and if not activate it and make sure that the original LabVIEW panel and control has still the Key Focus.
It's a bit more work than a quick and dirty example VI and while we use such VIs in our company, they can not be distributed publically for copyright reasons. Our variant doesn't actually use OSK but implements a control type sensitive LabVIEW popup panel with only a numeric keypad for numeric controls.
One complication this can pose is that this registers certain events for a control and it is a very bad idea to have two event structures try to register the same event for the same control. It results in the situation that it is anyones guess who of the two will receive the actual event so that the behaviour gets erratic. So if you use such a solution don't try to register in your own VI the same events again for some further control customization.
That all said, unless you plan to go into mass creation of multiple LabVIEW applications for touchpanel displays the effort to create such a library is definitely many times higher than to bite the apple and add the necessary events yourself to your frontpanel VI that needs to have touchpanel keyboard support.