Search the Community
Showing results for tags 'osk.exe'.
-
Good morning I was trying to start the Virtual Keyboard of Windows from my script, but everytime I do the Shell from the script, a MsgBox appears to communicate that it's unable to start the virtual keyboard. I run AutoIt on Windows 10 64 bit, and If I double click on "osk.exe", located in C:\Windows\System32, it runs normally... If I try to launch it from my application ( or double click / launch from C:\Windows\SysWOW64 ), it tells me what I wrote above. This is the code I use to launch the Virtual Keyboard ( First, I see if the user has clicked on a checkbox and set the state to checked only, if so, I launch osk.exe ) : If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecuteWait($sFileTastieraVirtuale If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf Any suggestions? Thanks
-
Hello, after doing some search upon the start issues for OSK.EXE I found several threads covering the nice 32bit/64bit filesystem redirection. Searching the autoit help is bringing up this topic: _WinAPI_Wow64EnableWow64FsRedirection That one is telling: This function is useful for 32-bit applications that want to gain access to the native system32 directory. By default, WOW64 file system redirection is enabled. This function may not work reliably when there are nested calls. Therefore, this function has been replaced by the Wow64DisableWow64FsRedirection and Wow64RevertWow64FsRedirection functions. But I cannot find any other topic in the help system covering this stuff? BTW, this is working for me perfectly to keep OSK.EXE running all the time. Purpose is a tablet application, where some users tend to close OSK and to complain afterwards, that it vanished ;-) Func OSKchecker() If ProcessExists("osk.exe") Then Return Else ; MsgBox(0,"kein OSK erkannt",$PIDosk) If (@OSArch = "X64") And (@AutoItX64 = 0) Then DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection $PIDosk = ShellExecute("osk.exe") DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection Else $PIDosk = ShellExecute("osk.exe") EndIf EndIf EndFunc ;==>OSKchecker