求解:如何将一个外部程序运行在自己的窗口中?

dafu2003 2010-10-23 11:14:36
比如一个exe格式的电子书,让他运行在我的一个form中。
也就是说要修改它的父窗口为我的form,再修改他的位置。

能做到吗?如何做?
谢谢了。
...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbsd236 2012-04-03
  • 打赏
  • 举报
回复
谢谢,找了好久了。
嗷嗷叫的老马 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dafu2003 的回复:]
使用 shell 或 shellexecute 执行的不确定的程序,用FindWindow 无法确定其hwnd,该如何才能获得他的hwnd?
[/Quote]
一,SHELL后得到了PID.

二,使用enumwindows取得所有顶级窗口的句柄,再用GetWindowThreadProcessId得到PID,对比,得到了窗口HWND:)
ningweidong 2010-10-24
  • 打赏
  • 举报
回复
findwindow只适合查找标题固定的窗口的名柄。
查找窗口的句柄方法还有很多,百度一下,就有很多
嗷嗷叫的老马 2010-10-23
  • 打赏
  • 举报
回复
调用setparent函数.
贝隆 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kill2010 的回复:]
VB code
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVa……
[/Quote]
+1
dafu2003 2010-10-23
  • 打赏
  • 举报
回复
楼上几位说的不错,谢谢。
现在的问题是,我的程序使用 shell 或 shellexecute 执行的不确定的程序,用FindWindow 无法确定其hwnd,该如何才能获得他的hwnd?

ningweidong 2010-10-23
  • 打赏
  • 举报
回复
先找到目标窗口的句柄,再把它的父体设置成你的窗体
Private Sub Command1_Click()
Dim n As Long
n = FindWindow(vbNullString, "扫雷")

SetParent n, me.hWnd
End Sub
我这里是按窗口标题查找的句柄,你可以用其它方法查找句柄。
然后设置父窗体,我这里设的是程序窗体,你也可以设为别的窗体。
Kill2010 2010-10-23
  • 打赏
  • 举报
回复
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Form_Load()
Shell "calc.exe", vbNormalNoFocus '打开计算器
End Sub
Private Sub Command1_Click()

Myhwnd = FindWindow(vbNullString, "计算器") '得到计算器的句柄
SetParent Myhwnd, Me.hwnd
End Sub
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 §1 LINGO快速入门 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO求解如下的LP问题: 在模型窗口输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 单 位 销地 运 价 产地 B1 B2 B3 B4 B5 B6 B7 B8 产量 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38 使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮 即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 §2 LINGO的集 对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、交通工具和雇工等等。LINGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。 现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规模较大的模型。 2.2 什么是集 集是一群相联系的对象,这些对象也称为集的成员。一个集可能是一系列产品、卡车或雇员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属性值可以预先给定,也可以是未知的,有待于LINGO求解。例如,产品集的每个产品可以有一个价格属性;卡车集的每辆卡车可以有一个牵引力属性;雇员集的每位雇员可以有一个薪水属性,也可以有一个生日属性等等。 LINGO有两种类型的集:原始集(primitive set)和派生集(derived set)。 一个原始集是由一些最基本的对象组成的。 一个派生集是用一个或多个其它集来定义的,也就是说,它的成员来自于其它已存在的集。 2.3 模型的集部分 集部分是LINGO模型的一个可选部分。在LINGO模型使用集之前,必须在集部分事先定义。集部分以关键字“sets:”开始,以“endsets”结束。一个模型可以没有集部分,或有一个简单的集部分,或有多个集部分。一个集部分可以放置于模型的任何地方,但是一个集及其属性
计算机应用基础18秋在线作业2-0004 当前驱动器和当前工作盘这两个概念可以( ) 选项A是:混用 选项B是:单独使用 选项C是:有条件使用 选项D是:不可混用 正确选项:A 在Excel 2000工作簿,至少应含有的工作表个数为( )。 选项A是:1 选项B是:2 选项C是:3 选项D是:4 正确选项:C 一个完整的计算机系统应包括: 选项A是:系统硬件和系统软件 选项B是:硬件系统和软件系统 选项C是:主机和外部设备 选项D是:主机、键盘、显示器和辅助存储器 正确选项:B 为获得下一条指令的地址,CPU在取指后通常修改( ) 选项A是:指令计数器的内容 选项B是:指令寄存器的内容 选项C是:指令译码器的内容 选项D是:操作控制逻辑的内容 正确选项:A 关闭正在编辑的Word文档时,文档从屏幕上予以清除,同时也从( )清除。 选项A是:内存 选项B是:外存 选项C是:磁盘 选项D是:CD-ROM 正确选项:A 微型计算机,运算器的主要功能是进行 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第1页。选项A是:逻辑运算 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第1页。 选项B是:算术运算 选项C是:算术运算和逻辑运算 选项D是:复杂方程的求解 正确选项:C 某单位自行开发的工资管理系统,按计算机应用的类型划分,它属于 选项A是:科学计算 选项B是:辅助设计 选项C是:数据处理 选项D是:实时控制 正确选项:C 微型计算机使用的人事档案管理系统,属下列计算机应用的 : 选项A是:人工智能 选项B是:专家系统 选项C是:信息管理 选项D是:科学计算 正确选项:C 在公式输入"=$C1+E$1"是( )引用。 选项A是:相对 选项B是:绝对 选项C是:混合 选项D是:任意 正确选项:C 要在每张幻灯片上添加一个公司的标记,应该在( )进行操作。 选项A是:母版视图 选项B是:普通视图 选项C是:幻灯片母版 选项D是:幻灯片浏览视图 正确选项:A "Pentium 350"和"Pentium 450"的"350"和"450"的含义是 选项A是:最大内存容量 选项B是:最大运算速度 选项C是:最大运算精度 选项D是:CPU的时钟频率 正确选项:D 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第2页。 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第2页。 当一个在前台运行的应用程序窗口被最小化后,该应用程序将 选项A是:被止执行 选项B是:继续在前台执行 选项C是:被暂停执行 选项D是:被转入后台执行 正确选项:D 下列四个不同进制的无符号整数,数值最小的是: 选项A是:10010010(B) 选项B是:221(O) 选项C是:147 (D) 选项D是:94 (H) 正确选项:B 在Excel,计算工作表A1-A10数值的总和,使用的函数是( )。 选项A是:SUM(A1:A10) 选项B是:AVE(A1:A10) 选项C是:MIN(A1:A10) 选项D是:COUNT(A1:A10) 正确选项:A 3、 WORD是( )公司开发的文字处理软件。 选项A是:微软(Microsoft) 选项B是:联想(Lenovo) 选项C是:方正(Founder) 选项D是:莲花(Lotus) 正确选项:A 在D4单元格内有一个公式A4+B4,将这个公式复制到单元格G8后,单元格内的公式是( )。 选项A是:A4+B4 选项B是:F4+G4 选项C是:F8+G8 选项D是:D8+F8 正确选项:C 在Excel 2000,先选择一个单元格或单元格区域,再选取其他不连续的单元格或单元格区域的做法是( )。 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第3页。选项A是:直接选取 奥鹏东北师范大学计算机应用基础在线作业2-0004满分作业参考全文共7页,当前为第3页。 选项B是:按住Alt键选取 选项C是:按住Shift键选取 选项D是:按住Ctrl键选取 正确选项:D 存储器存放的信息可以是数据,也可以是指令,这要根据 选项A是:最高位是0还是1来判别 选项B是:存储单元的地址来判别 选项C是:CPU执行程序的过程来判别 选项D是:ASCII码表来判别 正确选项:C 微型计算机的运算器、控制器及内存储器的总称是 选项A是:CPU 选项B是:ALU 选项C是:主机 选项D是:MPU 正确选项:C 解释程序的功能是 选项A是:解释执行高级语言程序 选项B是:解释执行汇编语言程序 选项C是:将汇编语言程序编译成目标程序 选项D是:将高级语言程序翻译成目标程
计算机应用基础19秋在线作业2-0004 试卷总分:100 得分:100 一、 单选题 (共 25 道试题,共 62 分) 1.当前驱动器和当前工作盘这两个概念可以( ) A.混用 B.单独使用 C.有条件使用 D.不可混用 【参考选择是】:A 2.在Excel 2000工作簿,至少应含有的工作表个数为( )。 A.1 B.2 C.3 D.4 【参考选择是】:C 3.一个完整的计算机系统应包括: A.系统硬件和系统软件 B.硬件系统和软件系统 C.主机和外部设备 D.主机、键盘、显示器和辅助存储器 【参考选择是】:B 4.为获得下一条指令的地址,CPU在取指后通常修改( ) A.指令计数器的内容 B.指令寄存器的内容 C.指令译码器的内容 D.操作控制逻辑的内容 【参考选择是】:A 5.关闭正在编辑的Word文档时,文档从屏幕上予以清除,同时也从( )清除。 A.内存 B.外存 C.磁盘 D.CD-ROM 【参考选择是】:A 6.微型计算机,运算器的主要功能是进行 A.逻辑运算 B.算术运算 C.算术运算和逻辑运算 D.复杂方程的求解 【参考选择是】:C 7.某单位自行开发的工资管理系统,按计算机应用的类型划分,它属于 A.科学计算 B.辅助设计 C.数据处理 D.实时控制 【参考选择是】:C 8.微型计算机使用的人事档案管理系统,属下列计算机应用的 : A.人工智能 B.专家系统 C.信息管理 D.科学计算 【参考选择是】:C 9.在公式输入"=$C1+E$1"是( )引用。 A.相对 B.绝对 C.混合 D.任意 【参考选择是】:C 10.要在每张幻灯片上添加一个公司的标记,应该在( )进行操作。 A.母版视图 B.普通视图 C.幻灯片母版 D.幻灯片浏览视图 【参考选择是】:A 11."Pentium 350"和"Pentium 450"的"350"和"450"的含义是 A.最大内存容量 B.最大运算速度 C.最大运算精度 D.CPU的时钟频率 【参考选择是】:D 12.当一个在前台运行的应用程序窗口被最小化后,该应用程序将 A.被止执行 B.继续在前台执行 C.被暂停执行 D.被转入后台执行 【参考选择是】:D 13.下列四个不同进制的无符号整数,数值最小的是: A.10010010(B) B.221(O) C.147 (D) D.94 (H) 【参考选择是】:B 14.在Excel,计算工作表A1-A10数值的总和,使用的函数是( )。 A.SUM(A1:A10) B.AVE(A1:A10) C.MIN(A1:A10) D.COUNT(A1:A10) 【参考选择是】:A 15.3、 WORD是( )公司开发的文字处理软件。 A.微软(Microsoft) B.联想(Lenovo) C.方正(Founder) D.莲花(Lotus) 【参考选择是】:A 16.在D4单元格内有一个公式A4+B4,将这个公式复制到单元格G8后,单元格内的公式是 ( )。 A.A4+B4 B.F4+G4 C.F8+G8 D.D8+F8 【参考选择是】:C 17.在Excel 2000,先选择一个单元格或单元格区域,再选取其他不连续的单元格或单元格区域的 做法是( )。 A.直接选取 B.按住Alt键选取 C.按住Shift键选取 D.按住Ctrl键选取 【参考选择是】:D 18.存储器存放的信息可以是数据,也可以是指令,这要根据 A.最高位是0还是1来判别 B.存储单元的地址来判别 C.CPU执行程序的过程来判别 D.ASCII码表来判别 【参考选择是】:C 19.微型计算机的运算器、控制器及内存储器的总称是 A.CPU B.ALU C.主机 D.MPU 【参考选择是】:C 20.解释程序的功能是 A.解释执行高级语言程序 B.解释执行汇编语言程序 C.将汇编语言程序编译成目标程序 D.将高级语言程序翻译成目标程序 【参考选择是】:A 21.内存空间地址段为3001H至7000H,则可以表示( )个字节的存储空间。 A.16KB B.4KB C.4MB D.16MB 【参考选择是】:A 22.主机包括主板、多功能卡、硬盘驱动器、开关电源、扬声器、显示卡和 A.显示器 B.键盘 C.鼠标 D.软盘驱动器 【参考选择是】:D 23.鼠标拖动生成填充序列时,可以生成的序列( )。 A.一定是等差序列 B.一定是等比序列 C.可以是等差序列或等比序列 D.只能填充相同数 【参考选择是】:C 24.在Windows 2000可以进行文件和文件夹管理的软件是 : A."控制面板"和"开始"菜单 B."我的电脑"和"资源管理器" C."资源管理器"和"控制面板" D."我的电脑"和"控制面板" 【参考选择是】:B 25.在W

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧