| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1637 人关注过本帖
标题:VB获取过程中的内容
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
使用ida 抓的函数代码  和原来代码也相差甚远

所以 楼主的要求 基本难以实现

DO IT YOURSELF !
2015-04-10 13:54
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 8楼 opelwang
答:应该是在当前的运行程序中,搜索指定的模块名、过程名。而不是打开已存在硬盘中的模块。
比如正在开发的工程名是"工程1","工程1"中有command1、text1和text2控件,还有一个module1模块,module1中有一"sub 测试"。运行后,在text1中输入"module1"和"sub 测试",点击command1,text2中就显示"sub 测试"的内容?



大开眼界
2015-04-10 14:01
opelwang
Rank: 1
等 级:新手上路
帖 子:78
专家分:3
注 册:2009-7-2
收藏
得分:0 
回复 12楼 lianyicq
意思差不多了。
先试试能不能实现,谢谢。
2015-04-10 16:41
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
到底什么意思啊我也凌乱了
代码应该是固定的吧?不需要再用函数读取源代码啊。
另外代码都是会被VB编译的不可能被读取啊。
除非,你是要做个EXE,以后源代码丢了后可以运行EXE看源代码
这样也没必要函数啊,直接将源代码复制黏贴到TEXT1.TEXT中就可以了啊
搞不懂……

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-04-11 12:00
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:20 
回复 13楼 opelwang
初始想法是抓VB开发环境下module的句柄。module下的名为“通用”和“声明”的combobox或是...bar控件都能找到,但就是没发现module下的代码编辑窗口,有兴趣你可以继续试试。
但VB下的mz-tools插件确实能对开发环境进行操作,这应该是终极解决办法,希望能象OFFICE系列一样,VB也能对自身进行操作。这种操作需要应用程序在VB开发环境中运行。正在尝试...

大开眼界
2015-04-13 12:56
opelwang
Rank: 1
等 级:新手上路
帖 子:78
专家分:3
注 册:2009-7-2
收藏
得分:0 
以下是引用lianyicq在2015-4-13 12:56:48的发言:

初始想法是抓VB开发环境下module的句柄。module下的名为“通用”和“声明”的combobox或是...bar控件都能找到,但就是没发现module下的代码编辑窗口,有兴趣你可以继续试试。
但VB下的mz-tools插件确实能对开发环境进行操作,这应该是终极解决办法,希望能象OFFICE系列一样,VB也能对自身进行操作。这种操作需要应用程序在VB开发环境中运行。正在尝试...


如何实现不了,也可以曲线救国。

把代码封装到一个DLL文件中,再调用这个DLL文件中指定模块或类模块部分内容全部内容

可行否?请指点,谢谢!
2015-04-14 08:19
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
生成DLL文件也要编译生成,编译后不可能还原VB6开发界面下的代码。你参考http://www.
这个插件例子能统计代码行数,可以考虑按这个线索来继续。

大开眼界
2015-04-14 10:05
opelwang
Rank: 1
等 级:新手上路
帖 子:78
专家分:3
注 册:2009-7-2
收藏
得分:0 
回复 17楼 lianyicq
原则上讲,能统计行数,就能汇出代码,也应该可以汇出指定过程(开始行,结束行)之间的内容才对呀。
2015-04-14 10:45
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
我想也是,所以才说按这个线索来继续。你可以下载mz-tools来实际试试它的功能。
...
Set SourceComponent = VBInstance.VBProjects.Item(Text1.Text).VBComponents.Item(Text2.Text)
Text3.Text = SourceComponent.CodeModule.Lines(1, SourceComponent.CodeModule.CountOfLines)
这样可以把指定模块的代码读入到addin的text3.text文本框
...

[ 本帖最后由 lianyicq 于 2015-4-14 11:32 编辑 ]

大开眼界
2015-04-14 10:48
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
测试成功了。
可以把模块中的代码取出并放到指定的textbox中。就是用vbide对象。
你按这思路做下去,有具体问题再说。

大开眼界
2015-04-14 13:33
快速回复:VB获取过程中的内容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084227 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved