Windows Virtual Keyboard

0 views
Skip to first unread message

Jennifer Curtis

unread,
Aug 3, 2024, 4:09:06 PM8/3/24
to treacantossau

I can change the smaller keyboard when clicking on the settings icon you've highlighted. I can then change it to tablet, or other different on-screen keyboards, I've tried clicking the 'X' to quit but it won't go away. Maybe it's a bug not related to photoshop? I just thought it is because it happens when I'm using it, also it shows up a lot when I'm renaming group folders with my pen tablet.

Goodness Ged. That's really useful. I always struggle to bring up the keyboard when using my Cintiq Companion 2. It only really gets used when I'm travelling by air, and I don't actually like it, but all the same, that's a great shortcut, and one I didn't have despite having a big list of Windows shortcuts.

I haven't been able to reproduce the virtual keyboard that won't close. So it fixed itself. May have been windows updates or drivers, or maybe photoshop update that came in from the cloud. I waited for 3 weeks before posting, I think it's safe to say it's gone.

Now there's only one virtual keyboard left, it's more of an annoyance and distraction, it pops everytime I rename a layer or folder and will close as soon as I use the keyboard to start typing/renaming. I've read somewhere it's a feature and it can't be disabled? I rather label it as a bug than feature tbh.

Once I bought a start menu replacement, I don't mind Windows 8 too much - it's ugly, but most things work as well as Windows 7. But the thing that drives me crazy, endlessly, is the virtual keyboard popping up when I'm trying to do something else (well, just about anytime, since I almost never use it to type). It's like a giant Clippy that covers half the screen.

I haven't figured out what causes it to pop up. It seems pretty random, and sometimes it goes away before I can even reach for the escape key. Sometimes it comes up when I'm typing, sometimes when my hands are nowhere near the keyboard. Sometimes several times a minute, sometimes not for hours.

For On-Screen Keyboard go to Control Panel -> Ease of Access -> Ease of Access Center -> Use the computer without a mouse or keyboard and uncheck Use On-Screen Keyboard (if checked). Also check if the Windows + Volume Up key do something. It could be set to On-Screen keyboard in Ease of Access Center -> Make touch tablets easier to use.

(You could also consider putting this command into a batch file and executing it at startup as windows 8 restarts TabTip processes if it finds a touch input device, though it doesn't come forward on its own)

Windows 8.1 was designed with a heavy emphasis on touch screens ("traditionally" on tablets.) If a touch screen is present, Windows 8.1 assumes that a keyboard is not, so any time you poke your finger onto the screen within a text box, a keyboard pops in (because it thinks you don't have one available, so you'll obviously need a way to type in yonder text box, dig?) However, if you have a convertible machine like your Yoga, which has both a touch screen and a physical keyboard, Windows doesn't know that; It just thinks you have a touch screen ONLY, with no keyboard, so it keeps pushing that annoyingly redundant On-Screen Keyboard up in yo' grill even though you've already got a perfectly functioning "IRL" keyboard right in front of you. Dumb, ya? Dumb, dumb, dumb!

To make things more confusing, this behavior is only designed into METRO apps, and not Desktop apps (with SOME exceptions, like, say, Google Chrome, which have the Metro-style touch-text-box,-get-On-Screen-Keyboard-popup-automatically enabled as a "feature" you can't turn off)

Generally, with Desktop apps, you won't get a forced On-Screen Keyboard if you touch the screen, so this is why you may not see the strange behavior for hours at a time - you're using a desktop application.

As for the sudden disappearances, the On-Screen Keyboard will go away suddenly if you touch any of the physical keys. It's 8.1's way of saying, "Whoops! Sorry, I didn't see that physical keyboard there." Except it doesn't remember the whoops two seconds later.

I've called both Microsoft and Lenovo directly about this. Their take? The truth is, Microsoft did not design Windows 8.1 with convertibles (like your Yoga) in mind. If you have both a keyboard and a touch screen, you are going to experience this behavior. As of this point in time, there is no "fix."

Disabling the keyboard by stopping the service does work - it will nuke the On Screen Keyboard right outta the park - but the Yoga converts into a tablet as well as a laptop, and at that point you'll want that onscreen keyboard back - so the thought of digging into multiple screens and scrolling down to find that one tiny setting buried in a long scrolling list of other tiny settings each and every time you just want to flip your dam* computer into a tablet, is exasperating.

We're going to make it so that the On-Screen Keyboard will NOT pop into view without your permission, but still have the On-Screen Keyboard available to you when you use tablet mode. Better yet, it's not that complicated to do... Ready?

As long as that new keyboard sits minimized in the Taskbar, when you touch or click on any text box in any context the OS will think that the On-Screen Keyboard is already enabled, except it won't shove it back in front of your face, it will stay neatly minimized. You won't see it.

(You'll still have to reengage that alternate On-Screen Keyboard each time you come back to laptop mode from tablet mode, but it only takes a second to do so. ....I did say this was a workaround, not a fix.)

I right clicked and stopped, then went back and did it again and double clicked and chose "disable" from the drop down window, making sure to click the "apply" button, then "ok" button, and then this:

Again, make sure to click the "apply" button followed by "ok". I first checked "use the computer without a mouse or keyboard" (this was previously unchecked) - then I immediately unchecked it again, followed by "apply" and "ok". This solved my problem on a Windows 8.1 ASUS tablet laptop.

I would like to build my own virtual keyboard for my windows 7 tablet.I am not starting from zero in programming; I just have no idea on where to start to make a system level device like a virtual keyboard.

Drivers are written in C (not even C++; just C), and they use the Windows Driver Kit for development. There is insufficient documentation, period (the sooner you admit this, the better). Pick up a copy of the following books if you don't already have them: Windows Internals, Advanced Windows Debugging, Oney's Programming the Windows Driver Model, and Developing Drivers with the Windows Driver Foundation. I strongly recommend using KMDF, since it makes writing drivers only extremely difficult rather than insanely near-impossible. Subscribe to OSR's NTInsider and read their mailing list archives (they are the only source I know that has all the missing details on driver writing). Begin working your personal contacts because there's a medium-to-high chance you'll need to talk to someone deep within Microsoft.

To make myself clear:
This is running on a win10 touch screen PC. When I have the tablet mode enabled the virtual keyboard shows up on some TextBoxes and does not on others. Hence why I want to force the keyboard to show.

EDIT:I have since found a way to show the "virtual tablet keyboard", however I would like to do it using the InputPane class. Can someone provide me with a example code just to get me started?

But I had to add a key (MANUALLY) value on my regedit on HKEY_CURRENT_USER\SOFTWARE\Microsoft\TabletTip inside the key is a folder named 1.7 (this would change in the future by Microsoft) and add a 32 bit DWORD value named EnableDesktopModeAutoInvoke with value 1. This means TRUE. It should look like this:

So I have this application, that runs smoothly on a standard PC, and does quite well on a tablet too. With one exception, the virtual keyboard causes quite the headache. Not only does Windows seem to have two different virtual keyboards, they behave quite differently too:

is set. According to the fine manual this will cause the virtual keyboard to show even if there is a physical keyboard present. So as soon as the focus is set on an editable component like TEdit, this keyboard will popup and as soon as said component looses focus the keyboard will disappear. Now here's the tricky part: This keyboard looks different, and on some machines (HP tablets with an i5) takes ages (at least 30 seconds) to "pop up". On my VM that I'm running on a Mac with an i7, this happens instantly.

Any user who knows iOS will consider option 1 to be "out of the question" so I use option 2, but for the life of me am not able to speed up the virtual keyboard popup process. This might just become a deal breaker, hence this post.

Normally, Windows will invoke the keyboard when clicking/tapping text boxes with a finger (or pen, when configured). With FMX, it's still painted internally and not a "true" windows edit field with a HWND, right? I see FMX does its own thing in TVirtualKeyboardWin.Create (FMX.Platform.Win.pas), so you can probably use the global variable "VirtualKeyboardWin" and stuff in an implemtation that does not use the hardcoded path to "osk.exe".

I see that TVirtualKeyboardWin.Create() in Fmx.Platform.Win.Pas may use hardcoded paths to "osk.exe", but there is also a global variable "VirtualKeyboardWin". I think you should be able to subclass TVirtualKeyboardWin to use "tabtip" instead. And thenm let the global variable point to an instance of your subclass.

I just wanted to document here some findings, as I have had issues recently and in the past with the OSK automatically displaying (and correctly) in Perspective Workstation on touchscreens without physical keyboards. All issues appear to stem from the OS.

The OSK doesn't automatically show at all in the Perspective Workstation launcher (e.g. when trying to add an application connection to launch a client). Opening the OSK manually does work and you are able to use it to input into fields as expected.
I haven't found a solution to this yet

c80f0f1006
Reply all
Reply to author
Forward
0 new messages