# Question of \[Ctrl\] and \[Alt\] key for virtual keyboard in vision project

**URL:** <https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070>\
**Category:** Ignition\
**Created:** [September 6, 2019, 3:40am UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070 "2019-09-06T03:40:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dawei.liu](https://avatars.discourse-cdn.com/v4/letter/d/76d3ee/32.png) [@dawei.liu](https://forum.inductiveautomation.com/u/dawei.liu)\
**Post date:** [September 6, 2019, 3:40am UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/1 "2019-09-06T03:40:46Z")

</div>

Hi,

As we have to use the [Ctrl] or [Alt] key, but there is no such keys in the virtual keyboard of vision project as shown in below snapshot  
So is it possible to add these two keys in the virtual keyboard？

If not possible, is there any workaround?

Thanks in advance.

 ![Capture](https://us1.discourse-cdn.com/inductiveautomation/original/2X/4/4e961913d9a6fc617a7e587b10551f350dc444ed.png)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 6, 2019, 3:33pm UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/2 "2019-09-06T15:33:16Z")

</div>

What’s the use case? The touchscreen keyboard in Vision is not a true virtual keyboard - it only submits text back to whatever control was used to activate it, it does not have the ability to send arbitrary keystrokes. If you want a true virtual keyboard, I would suggest using the one built in to the OS.

---

<div class="post-metadata">

**Author:** ![dawei.liu](https://avatars.discourse-cdn.com/v4/letter/d/76d3ee/32.png) [@dawei.liu](https://forum.inductiveautomation.com/u/dawei.liu)\
**Post date:** [September 6, 2019, 3:39pm UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/3 "2019-09-06T15:39:05Z")

</div>

For some operation in our program, it needs user to press alt or ctrl key when clicking some buttons to avoid misoperation.

so if we use windows built-in virtual keyboard, how could we invoke it from ignition?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 6, 2019, 4:01pm UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/4 "2019-09-06T16:01:38Z")

</div>

Assuming you’re on Windows, [`system.util.execute(["osk"])`](https://docs.inductiveautomation.com/display/DOC80/system.util.execute) should work.

---

<div class="post-metadata">

**Author:** ![dawei.liu](https://avatars.discourse-cdn.com/v4/letter/d/76d3ee/32.png) [@dawei.liu](https://forum.inductiveautomation.com/u/dawei.liu)\
**Post date:** [September 6, 2019, 4:03pm UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/5 "2019-09-06T16:03:43Z")

</div>

@paul-griffith  
really appreciate your help, it shall works

---

<div class="post-metadata">

**Author:** ![dawei.liu](https://avatars.discourse-cdn.com/v4/letter/d/76d3ee/32.png) [@dawei.liu](https://forum.inductiveautomation.com/u/dawei.liu)\
**Post date:** [September 9, 2019, 6:20am UTC](https://forum.inductiveautomation.com/t/question-of-ctrl-and-alt-key-for-virtual-keyboard-in-vision-project/28070/6 "2019-09-09T06:20:14Z")

</div>

It seems that the calling of [`system.util.execute(["osk"])` ](https://docs.inductiveautomation.com/display/DOC80/system.util.execute) will not work.

It will have similar error as describe in

> <https://stackoverflow.com/questions/9281315/java-invoke-on-screen-keyboard>

I tried to use command system.util.execute(["cmd /c C:\Windows\System32\osk.exe"]) but still failed.

Solved the Win10 built-in virtual keyboard by using import os os.popen("osk.exe") as shown in below thread.

> [@Display Touch Screen Keyboard when saving file](http://forum.inductiveautomation.com/t/display-touch-screen-keyboard-when-saving-file/10935/3):
>
> I’ll admit it. I’m stumped. I could get a keyboard to show, but it was pre-empted by the save dialog. confused BUT… I could get it to work with the Windows OSK (On-Screen keyboard). In the mousePressed event: import os os.popen("osk.exe") In the actionPerformed event: [code]import system, datetime, os now = datetime.datetime.now() timeStamp = str(now) nameDateFile = now.strftime("%d%m%Y\_%H%M%S") filename = “%s\_stroj\_avtomatsko.csv”%(nameDateFile) capture the table and do the export t…
