现在手头有一个控制仪器的小软件,由于厂家没有提供任何的开发信息,所以想到的办法是写一个软件去控制那个软件,以达到自动控制仪器的目的。开上两个软件在功能上没有任何问题,但是总觉得开两个不大美观,由于对方的软件界面很小,差不多“计算器”大小,因此想到能否把对方的软件,直接嵌入到自己软件的界面中。麻烦大家给点思路,如果有示例代码,可以拿系统的“计算器”为例,谢谢

解决方案 »

  1.   

    1、启动该程序 Process.start
    2、找到该程序的主窗口
    3、自己创建一个Form
    4、将该程序的主窗口移动到自己的Form里面
      

  2.   

    呵呵,VB6中,我做过你这种,。net暂时还没用到。
    主要是 找句柄,然后控制,去边框,改大小,改文字。然后形成父子关系而崁入自己的窗体中。
      

  3.   

    1.process.start()获取句柄
    2,setwindowlong,调整窗体,去掉标题框等等
    3,movewindow,移动到相应位置
    4,焦点问题
      

  4.   

    用个panel 吧内嵌程序放到这个panel上 打开内嵌程序时候获得左上角点 然后绑定到panel上就好了
      

  5.   

    FindWindow找到句柄后将此窗口SetParent到自己的窗口上即可
    还有一个办法是你做一个好看的界面,然后也同时打开它的程序
    点你界面上的Button就给他程序发个消息
      

  6.   


    我现在也想在一般情况下,把它的界面隐藏起来,点击我的软件时,给它PostMessage来操作
    不过总归有需要显示的时候,过会要出去,回来试试SetParent的效果
      

  7.   

    8楼正解,把对方软件主窗口的父窗口设为你软件里的一个panel即可,然后隐藏这个panel,调用功能时直接发消息给对方软件的对应控件
    这样既美观又方便
      

  8.   

    谢谢大家,最终使用8楼的方案比较完美的解决了,大致如下
    使用SetWindowLong设置一下需要嵌入程序的属性,主要就是去掉边框,去掉标题栏,设置不要在任务栏上显示等
    然后使用SetParent直接嵌入
      

  9.   


    .Net的实现方法也一样。