How do you call it? If you simply RUN /N or ! /N tabtip.exe that keyboard runs. The user can close it.
You gain control on a process you start, when using CreateProcess() Windows API.
If you neither call WaitForSingleObject(), nor close the process handle via CloseHandle(), you can terminate the process via TerminateProcess(), after that you should CloseHandle() additionally.
See
The tablet will be used for asset management by field technicians and therefore I am trying to minimize the number of actions required to perform the tasks. Opening and closing of the keyboard automatically at specific moments will greatly improve the operation of the app.
I am currently opening and closing the keyboard with these functions
FUNCTION closetabletkeyboard
lcProcess="tabtip.exe"
lcComputer = "."
loWMIService = Getobject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\\" + lcComputer + "\root\cimv2")
colProcessList = loWMIService.ExecQuery ;
("Select * from Win32_Process")
For Each loProcess In colProcessList
IF ALLTRIM(UPPER(loProcess.name)) == ALLTRIM(UPPER(lcProcess))
loProcess.terminate()
endif
Next
When running the shell execute, the keyboard appears OK
Problem being that by using terminate to close the keyboard, there is now a delay when opening the keyboard again as the process has to start up
I will have a look at the CreateProcess() Api as you suggested and see if I can make it work
starting tabtip.exe will always take a little time lag. I don't see a way to hide and show the keyboard, unless you click on the close button (upper right X) on the keyboard, which doesn't terminate it, but let's it slide to a screen side.
You could try to send a windows message to minimize the keyboard window, if you get the hwnd handle.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.