你只是运行了osk 并没有处理osk按下发送到打开的记事本之间的消息吧

解决方案 »

  1.   

    怎么处理啊?你能说具体一点吗?
    我就用这个语句打开的:ShellExecute(NULL, _T("open"), _T("osk.exe"), NULL, NULL, SW_SHOW);
      

  2.   

    试过这样没有问题,点击软键盘上的按键可以在notepad中输入HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
    if(hWnd)
    {   
    ::SetForegroundWindow(hWnd);
    ShellExecute(NULL, _T("open"), _T("osk.exe"), NULL, NULL, SW_SHOW);
    }
      

  3.   

    我试了还是不行啊,你把你的可执行文件发我一下,我试试行不?
    [email protected]
      

  4.   

    测试程序的代码很简单,就是上面几句。是写在一个Button的BN_CLICKED消息响应函数中的。
    测试过程:你先打开一个notepad记事本程序,然后点击测试程序的Button,就会将notepad带来前台窗口,同时打开软键盘,你在软键盘上点击对应的按钮就可以看到notepad中有对应的输入。
      

  5.   

    我的方法和你说的差不多但是不行,我现在怀疑可能是我的系统问题,你把你的测试程序exe发给我看看,如果在你那边可以,在我这边不行,那就是我的系统问题了
      

  6.   

       
      HIMC hIMC = ImmGetContext(pWnd->m_hWnd);   
      DWORD dwConv, dwSent;   
      DWORD dwTemp;   
        
      ImmGetConversionStatus(hIMC,&dwConv,&dwSent);   
      if (dwConv & IME_CMODE_SOFTKBD)   
      dwConv &= ~IME_CMODE_SOFTKBD;   
      else   
      dwConv |= IME_CMODE_SOFTKBD;   
        
      ImmSetConversionStatus(hIMC,dwConv,dwSent);   
        
      ImmReleaseContext(pWnd->m_hWnd,hIMC); 
      

  7.   

    用这个ShellExecute(NULL, _T("open"), _T("osk.exe"), NULL, NULL, SW_SHOW);
    会受到搜狗输入法,QQ输入法的影响,把其他输入法工具删了就可以了
      

  8.   

    今天调试程序也遇到了相同的问题,最后发现不能把OSK.EXE文件放在程序目录中。删除就正常了