Foxtable(狐表)用户栏目专家坐堂 → [求助]


  共有4747人关注过本帖树形打印复制链接

主题:[求助]

帅哥哟,离线,有人找我吗?
lds
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
[求助]  发帖心情 Post By:2023/2/6 11:04:00 [只看该作者]

嵌套外部程序到窗口,在窗口设计器里预览能正常执行图片点击可在新窗口打开查看但重启程序用并列窗口运行按钮提示图片点击可在新窗口打开查看
button1 代码SetParent(FindWindow(Nothing, "chrome"), e.Form.BaseForm.Handle.ToInt32())
Dim proc As New Process
proc.File = "C:\Program Files\Google\Chrome\Application\chrome.exe"
proc.Start

System.Threading.Thread.Sleep(1500)

'然后根据标题嵌入
Dim hwnd As IntPtr = FindWindow(Nothing, "新标签页 - Google Chrome")
SetParent(hwnd, e.Form.controls("panel1").basecontrol.Handle.ToInt32())
MoveWindow(hwnd, 100, 100, 200, 300, True)

是什么原因造成的?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 11:06:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

 回到顶部
帅哥哟,离线,有人找我吗?
lds
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
  发帖心情 Post By:2023/2/6 11:22:00 [只看该作者]

预览时是正常的,软件正常启动后点按钮时报错,应该不是语句的问题,  
运行错误
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,浏览器,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 11:30:00 [只看该作者]

看2楼,加调试代码,看哪一句有问题

 回到顶部
帅哥哟,离线,有人找我吗?
lds
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
  发帖心情 Post By:2023/2/6 11:50:00 [只看该作者]

SetParent(FindWindow(Nothing, "chrome"), e.Form.BaseForm.Handle.ToInt32())
MessageBox.Show(1)
Dim proc As New Process
MessageBox.Show(2)
proc.File = "C:\Program Files\Google\Chrome\Application\chrome.exe"
MessageBox.Show(3)

proc.Start
MessageBox.Show(4)
System.Threading.Thread.Sleep(1500)
MessageBox.Show(5)
'然后根据标题嵌入
Dim hwnd As IntPtr = FindWindow(Nothing, "新标签页 - Google Chrome")
MessageBox.Show(6)
SetParent(hwnd, e.Form.controls("panel1").basecontrol.Handle.ToInt32())
MessageBox.Show(7)
MoveWindow(hwnd, 100, 100, 200, 300, True)
MessageBox.Show(8)



预览可以1-8,
重新运行程序
直接就报错
第一句就报错了错了

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 11:56:00 [只看该作者]

把窗口设置为独立,或者模式窗口

 回到顶部
帅哥哟,离线,有人找我吗?
lds
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
  发帖心情 Post By:2023/2/6 13:26:00 [只看该作者]

独立,模式窗口可以正常运行,并列报错,我想让其并列作为整体使用,有什么方法可以并列使用?

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 13:33:00 [只看该作者]

e.Form.BaseForm.Handle
改为
basemainform.Handle

 回到顶部
帅哥哟,离线,有人找我吗?
lds
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
  发帖心情 Post By:2023/2/6 13:42:00 [只看该作者]

---------------------------
错误
---------------------------
编译错误:未声明“e”。它可能因其保护级别而不可访问。



错误代码:SetParent(hwnd, e.Form.controls("panel1").basecontrol.Handle.ToInt32())
---------------------------
确定   
---------------------------




Dim hwnd As IntPtr = FindWindow(Nothing, "新标签页 - Google Chrome")

SetParent(hwnd, e.Form.controls("panel1").basecontrol.Handle.ToInt32())

MoveWindow(hwnd, 100, 100, 200, 300, True)
这个需要怎么改?

 回到顶部
帅哥哟,离线,有人找我吗?
lds
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1843 威望:0 精华:0 注册:2019/10/21 21:57:00
  发帖心情 Post By:2023/2/6 13:43:00 [只看该作者]

SetParent(FindWindow(Nothing, "Google Chrome"), basemainform.Handle.ToInt32())

Dim proc As New Process

proc.File = "C:\Program Files\Google\Chrome\Application\chrome.exe"


proc.Start

System.Threading.Thread.Sleep(1500)

'然后根据标题嵌入
Dim hwnd As IntPtr = FindWindow(Nothing, "新标签页 - Google Chrome")

SetParent(hwnd, e.Form.controls("panel1").basecontrol.Handle.ToInt32())

MoveWindow(hwnd, 100, 100, 200, 300, True)

 回到顶部
总数 11 1 2 下一页