64位win7下 调用键盘的有关问题

64位win7下 调用键盘的问题
问题描述:我的程序是XP下编译的32位的MFC对话框程序, 功能就是调用执行OSK系统键盘。 在64位win7下现象,我分别用过 ShellExecute, ShellExecuteEx, CreateProcess三个函数调用osk.exe,都是不能直接调用system32目录的osk(相对路径和绝对路径都用过); 
后换另一种方法,就是程序先用copyFile把system32目录(绝对路径)的osk文件拷到指定目录,再通过上面的方法执行;发现一个现象,就是系统会自动将(C:\\windows\system32\osk.exe)路径转为(C:\\windows\sysWOW64\osk.exe),就等于是把C:\\windows\sysWOW64\osk.exe拷出来, 查资料显示,C:\\windows\system32\下是64位的程序和动态库,C:\\windows\sysWOW64\是32位的程序和动态库。因为我的程序是32位的,自动转过去是没有问题。但把C:\\windows\sysWOW64\osk.exe拷出来的文件(程序,手动都用过),都是不能程序执行(可手动执行);但是我手动的将C:\\windows\system32\osk.exe拷出来的文件,用我的程序就能执行。

问题:1、我的程序为什么不能调用执行C:\\windows\sysWOW64\里拷出的文件,而能执行C:\\windows\system32\下拷出的osk.exe;
  2、32位程序如何才能通过copyfile拷贝出C:\\windows\system32\osk.exe文件,而不自动跳转。

希望有人给点解决思路,我最终目标就是为能通过程序调用64下windows7下的OSk.exe(不管是C:\\windows\sysWOW64\或C:\\windows\system32\下的),有其它方法可以实现也行。


------解决方案--------------------
好像是系统自动分配的。程序里,你只需要对system32下的进行操作就可以了。不用管是哪里出来的。
------解决方案--------------------
馊主意:不管它在哪里,自己程序打包的时候带一个32位下的osk.exe放在根目录下。
------解决方案--------------------
探讨
自带是能解决,因为我们真的程序是要不同语言系统下使用,所以自带的,osk语言就解决不了了