在玩游戏时,启动后就是全屏,我想写个小程序,让游戏在我的窗口中运行,但是不知道该怎么做,没有思路,请指点迷津!!!谢谢

解决方案 »

  1.   

    [DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);[DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    SetParent(FindWindow(null,"游戏程序标题"),me.handle)
      

  2.   

    [DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("Kernel32.dll")]
    static extern IntPtr GetCurrentProcess();try
    {
    this.richTextBox1.Text += FindWindow(null,"XDICT.EXE").ToString()+"\n";
    this.richTextBox1.Text += GetCurrentProcess().ToString()+"\n";
    SetParent(FindWindow(null,"XDICT.EXE"),GetCurrentProcess());
    }
    catch(Exception ee)
    {
    this.richTextBox1.Text += ee.Message.ToString();
    }把金山词霸放到窗口中,没有报错,但是FindWindow(null,"XDICT.EXE").ToString()的值是0,GetCurrentProcess().ToString()的值是-1,然后就没有了。能详细的讲解一下吗?非常感谢!!!
      

  3.   

    似乎有点明白了,呵呵
    "游戏程序标题"不一定是进程管理器中的进程名
    比如要把“我的电脑”加进来,先打开“我的电脑”
    IntPtr fw = new IntPtr();
    fw = FindWindow(null,"我的电脑");
    SetParent(fw,this.Handle);
    就OK了!
    再次感谢诸位帮忙!!!