This code is for Visual Basic 6, but I don't see any reason impeding to use it in other languages. Windows' version before trying to call it.
C windows system32 osk exe 32 bit#
The On Error Resume Next avoids a runtime when calling Wow64EnableWow64FsRedirection() in 32 bit systems, but it would be better checking This is a quick and dirty proof of concept, but the same code works ok both in Windows XP x86 and Windows 7 x86-64. ShellExecute Me.hwnd, "open", "osk.exe", "", App.Path, SW_SHOWNORMAL Private Declare Function Wow64EnableWow64FsRedirection Lib "kernel32.dll" (ByVal Enable As Boolean) As Boolean I have successfully used it in a Visual Basic 6 project to run osd.exe: Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long %windir%\System32\osk.exe or %windir%\System32\cmd.exe (for example), launchs the 32 bit versions of the tools.īut there is an API, introduced in Windows Server 2003, which allows to deactivate the redirection.
C windows system32 osk exe 64 Bit#
Seems like the problem is that, by default, Win64 performs a filesystem redirection in all 32 bit processes that makes all accesses to %windir%\System32 (the 64 bit System directory) revert to %windir%\SysWOW64 (the 32 bit one). Overall though 64-bit Windows is very much at an early stage, most apps are 32-bit, 64-bit IE has huge issues with Active-X as in it does not work. When you call the on-screen keyboard, check if OS is 64-bit, if it is call the Windows XP osk.exe, works OK. Overall threat: No Spyware: No Trojan: No Virus: No How do I prevent osk.exe from loading The osk.exe process is part of Microsoft Windows and should not be deleted. Is osk.exe safe This osk.exe file is safe and should not be considered threat to your computer. Ideally Microsoft should include a 32-bit version of OSK.exe in the system folder and allow us to use it, if being called from a 32-bit application.Īnother work around is to get your hands on 32-bit Windows XP and pull osk.exe from it, bundle this with you app. Microsoft Windows file that should be located in the C:\Windows\System32 directory. I am developing software that uses the on-screen keyboard, the only work around is Wow64DisableWow64FsRedirection. For this purpose, the file is loaded into the main memory (RAM) and runs there as a OnScreen Keyboard process (also called a task). If you start the software OnScreen Keyboard on your PC, the commands contained in osk.exe will be executed on your PC. It from within a 32-bit application won't work in 64-bit Windows. The osk.exe is an executable file on your computer's hard drive. The comments appear to miss your point here, anyone can start osk.exe from Run, but call Windows won't allow you to call a 64-bit OSK.exe from your program. This is an issue with 64-bit OS, it affects any 64-bit version of Windows.īasically you are calling osk.exe, but your program you are calling it from is a 32-bit app.