A窗体运行全屏化。并且窗体处于最前端,有个按钮单击 
                Process.Start("ScreenKeyboard.exe");
弹出程序ScreenKeyboard,,但是因为A窗体是处于最前端的,所以ScreenKeyboard弹出来会被覆盖,
请问有什么方法可以让ScreenKeyboard能在A窗体上正常运行,,,单击按钮吧A窗体的toMost=fals;这个就不说了
我早就试过了。
这个问题 我问过好多次了 没一次能解决  希望这次能来个耐心的高人帮帮忙~~

解决方案 »

  1.   

    Process p = Process.Start("ScreenKeyboard.exe");
    p.WaitForInputIdle();
    SetWindowPos(p.MainWindowHandle, (IntPtr)(-1), 0, 0, 0, 0, 1);
      

  2.   

    忘记写声明了。
    [DllImport("user32.dll")]
    static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
        int Y, int cx, int cy, uint uFlags);
      

  3.   

    如楼上 调 windows的 API
      

  4.   

    还是一样,,,点一下A窗体  ScreenKeyboard   就被盖住了
      

  5.   

    好郁闷啊  我做ScreenKeyboard 应用程序的时候 也吧它Tomost属性设置成true了  到这2个都是处于最前端的  起冲突了?
      

  6.   

    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
       Private Const HWND_TOPMOST& = -1
       ' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
       Private Const SWP_NOSIZE& = &H1
       ' 保持窗口大小
       Private Const SWP_NOMOVE& = &H2
       ' 保持窗口位置
       Private Sub Form_Load()
       SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
       ' 将窗口设为在所有窗口前端
       End Sub
      

  7.   

    有人能解决吗  ScreenKeyboard   这个程序也是我做的。。是不是应该在这里面改呢~
      

  8.   


    2个 ToMost属性都设置成true 有啥冲突???? 只有窗体的TopMost属性 都为true 才能切换
      

  9.   

    你点了ScreenKeyboard 窗体 他肯定会被激活。你是想实现输入法软键盘的功能吧?  
    点击ScreenKeyboard 的时候 A窗体还有输入焦点。
      

  10.   

    我是要实现 让键盘窗体 处于其他顶端窗体之上我如果吧A窗体的ToMost=fals;的话  完全没问题 但是其他程序会到A窗体之上,。。我是想除了键盘 其他程序都被A窗体挡住!