下载之家:专注下载8年,极速安全,用心打造!

下载之家首页 |最新软件 |软件排行 |软件专题

您当前所在位置: 下载之家 >  软件下载 >  编程开发 >  编程工具 >  SourceInsight3.X标签插件v1.0免费版

SourceInsight3.X标签插件v1.0免费版

Source Insight 3.X 标签插件

  • 软件大小:13.00KB
  • 软件语言:简体中文
  • 软件类型:国产软件
  • 软件授权:免费软件
  • 更新时间:2013-01-24
  • 软件类别:编程工具
  • 软件官网:
  • 应用平台:WinAll
软件评分
网友评分:6
软件介绍 人气软件 下载地址 相关文章

Source Insight可以说是一款程序员必备的开发/阅读源码工具,美中不足的是SI没有标签栏,多个源码之间切换很不方便,于是我就乘闲暇之余写了该作品sihook:标签插件;不过严格意义上来说sihook并不算是插件,而是一个内挂:)
sihook实现原理:
1,插件的自动加载msimg32

几年前dll都是用CreateRemoteThread方法来加载,就是必须要有个exe的loader,而现在有了msimg32延迟加载漏洞,腰不酸了腿不疼了,加载外挂更方便了:),具体原理我就不多介绍了,网上一搜一大把.

2,肢解SI之siframe

SI主窗体是siframe,由于msimg32是延迟加载,由hook CreateWindowEx调试发现,当我们的dll载入的时候,siframe和mdiclient已经创建了,而si_sw未创建,那么我们直接得到当前进程的HWND就是siframe的HWND了,然后SetWindowLong替换窗口过程,只关心WM_SETTEXT消息,WM_SETTEXT设置标题的时候我们在后面加上"加强版"的字样,然后以siframe为父窗体创建我们的systabcontrol32控件.

3,肢解SI之mdiclient

mdiclient是SI中最重要的一个窗口,它管理着源码窗口的创建销毁,首先用FindWindowEx得到mdiclinet的句柄,然后SetWindowLong替换窗口过程,这里面要处理的消息有WM_WINDOWPOSCHANGING;WM_MDICREATE;WM_MDIDESTROY;WM_MDIACTIVATE;

WM_WINDOWPOSCHANGING是窗口大小改变的消息,这时候要处理tab的大小和mdiclient自身的大小,要在oldwndproc执行之前处理;

WM_MDICREATE;WM_MDIDESTROY;WM_MDIACTIVATE;要在oldwndproc执行之后处理,这样就可以直接拿到子窗口的句柄处理了.

WM_MDICREATE消息用FindWindowEx得到新创建的si_sw源码窗口的句柄,替换窗口过程

WM_MDIDESTROY消息直接能拿到HWND,同步删除tab标签

WM_MDIACTIVATE也能直接拿到HWND,同步激活tab标签

4,肢解SI之si_sw

si_sw子窗口就是源码显示窗口了,这个窗口我们只关心WM_SETTEXT消息,得到当前源码的标题(包括标题的变更),直接显示在tab上,这样就不用一个定时器去不停的比较了;

5,tabctl控件

为了精简,直接用sdk编程,只能用系统自带的systabcontrol32控件来做标签了,我封装了一层接口方便上层调用,包括增加,删除,双击关闭,改变选项卡颜色,调整位置高度等.说起来这是我第一次用systabcontrol32这个控件,做的很难看,如果有sdk美化高手知道怎么做的漂亮一点,可以给我留言,再此先表示感谢.另外双击关闭标签的同时要关闭源码窗口,看orbit的介绍要发WM_CLOSE消息,而且他的代码确实是这么实现的,并且有效,但是我怎么试都不灵,最后用OD一调试,发现SI自己发的是WM_SYSCOMMAND消息,WPARAM参数是SC_CLOSE,于是我也用SC_CLOSE消息来关闭文档:)

OK,基本原理就是上面几点,理清楚了制作标签内挂就很容易了,整个工程不算tabctl控件源码不超过10个函数。
安装于卸载:
安装:解压sihook.zip两个dll放到SI目录即可

删除:删除SI目录msimg32.dll和sihook.dll即可

本插件将开源,取之于网络,反馈于网络,大家帮推荐一个能访问的代码服务器,不用翻墙的,google code老抽,github貌似也挂了.
 

人气软件

  • MyEclipse(Java开发工具)官方最新版

    myeclipse 2015破解版是一款最新版企业级集成开发环境MyEclipse 2015 CI的破解版本,是一个十分优秀用于开发Java, J2EE的 Eclipse 插件集合。myeclipse 2015用2014的方法无法激活

    下载
  • Visual Basic简体中文企业版v6.0

    Visual Basic电脑版是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,Visual Basic电脑版都是世界上使用人数最多的语言。Visual Basic 6.0中文企业版拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。

    下载
  • eclipse中文版v4.4.2

    eclipse的标准版是ecliPSe classic ,Eclipse Classic的带有source,建议使用Eclipse Classic,需要插件自己安装配置即可.Eclipse 还包括插件开发环境,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

    下载
  • Visual Studio 2005(VS2005)官方中文版

    简体中文正式版本 版本号为8.0.50727.42(RTM.050727-4200)

    下载
  • sublime text 3中文版v3.3083

    Sublime Text中文破解版,是一款程序员必备代码编辑器,几乎每位程序员提到Sublime Text都是赞不绝口!它体积小巧,无需安装,绿色便携

    下载
  • java7 Update 67官方版 V7

    java 运行库 runtime environment 7,安装了它就可以运行java的程序了。Java语言恐怕是稳居网路应用程序语言的首选了,这都要归功于它高度的安全性以及跨平台的特性,几乎在

    下载
  • 长城证券大智慧v5.997

    下载
  • editplus中文版(文字编辑器) V4.0.0.522中文免费版

    EditPlus是一套功能强大,可取代记事本的文字编辑器,拥有无限制的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。  EditPlus是非常好的编辑

    下载
  • MyEclipse 2015官方最新版

    MyEclipse 最新版出来啦,最新官方版本MyEclipse 2015 CI,该版本基于 Eclipse Luna (露娜) 版本构建。

    下载
  • VisualStudio2008简体中文专业版

    Visual Studio 2008简体中文试用版(90天)变成永久正式版的两种方法:一、先安装试用版,然后在“添加或删除程序”里找到VS2008。

    下载

下载地址

相关文章

更多>>猜你喜欢