类似360急速浏览器的进程融合

kuangning 2012-03-12 10:49:48
360急速浏览器每个标签也里面都是一个单独的进程。delphi也能完成这样的功能。
主要用到下面的几个方法
1、创建进程,并得到进程的主窗体Handle(FormHandle)
2、用Windows.SetParent(FormHandle,apanel.Handle) ;(这样讲进程融合到panle上)
3、调用setWindowPos(FormHandle,HWND_TOP,0,0,apanel.Width,apanel.Height,SWP_ASYNCWINDOWPOS);(控制进程主窗口在panle中的位置以及大小,必须用这个方法来控制进程主窗体的大小以及位置)

这样一个进程融合就算是完成,当然还有动态创建tab,通过EnumWindows枚举出主窗体handle就不用在多说了。

最近在做着方面的东西,分享给大家一点心得。
...全文
239 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑猫P 2012-03-29
  • 打赏
  • 举报
回复
嗯,受教了。
kuangning 2012-03-28
  • 打赏
  • 举报
回复
顶下 给别人看看
kuangning 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 pathletboy 的回复:]

有利有弊,chrome就是多进程,缺点是系统资源占用多一点,好处是一个页面崩溃不会导致整个浏览器崩溃。
[/Quote]

呵呵 还有一点 他360的急速浏览器,这样可以很好的支持多内核。在现在硬件水平上去了,系统的资源占用多问题 不是很大。
而且 这种进程融合 就可以做到 不同语言开发的模块的集成。每个模块能独立运行,也能被集中管理。这个就很有意思了
我看见佛 2012-03-13
  • 打赏
  • 举报
回复
受教了
iqyely 2012-03-13
  • 打赏
  • 举报
回复
来学习下,还是不太懂
pathletboy 2012-03-13
  • 打赏
  • 举报
回复
有利有弊,chrome就是多进程,缺点是系统资源占用多一点,好处是一个页面崩溃不会导致整个浏览器崩溃。
sanguomi 2012-03-13
  • 打赏
  • 举报
回复
是这样用来防崩溃的
但是感觉有点浪费资源。可能也是因为IE内核而造成的无奈之举。
这点感觉还是不如firfox,firfox界面都在一个一个进程和线程内.
taishan2033 2012-03-13
  • 打赏
  • 举报
回复
学习了
无条件为你 2012-03-12
  • 打赏
  • 举报
回复
哦?原来浏览器多标签防止卡死,都是用多进程来实现的?
山东蓝鸟贵薪 2012-03-12
  • 打赏
  • 举报
回复
呵呵,上课呀学习一下
谢谢分享

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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