For data entry, instead of relying on the physical keyboard, user may choose to use Windows On-Screen Keyboard that gives access to all standard keys.
On-Screen Keyboard executable file, osk.exe, resides in System32 directory. Note that on 64-bit systems this file cannot be launched from 32-bit process. "File System Redirector" article on MSDN explains why:
32-bit applications can access the native system directory by substituting %windir%\Sysnative for %windir%\System32. WOW64 recognizes Sysnative as a special alias used to indicate that the file system should not redirect the access.
#include < windows.h >
#include < shlwapi.h >
int _tmain(int argc, _TCHAR* argv)
const char* oskPath = "osk.exe";
char* winDirPath = (char*)calloc(MAX_PATH, 1);
GetEnvironmentVariable("WINDIR", winDirPath, MAX_PATH);
if (!winDirPath) return;
char* sysDirPath = (char*)calloc(MAX_PATH, 1);
char* targetPath = (char*)calloc(MAX_PATH, 1);
PathCombine(targetPath, winDirPath, "sysnative");
PathCombine(targetPath, targetPath, oskPath);
PathCombine(targetPath, sysDirPath, oskPath);