转到正文

工作后院

工作累了,来这里休息休息

AutoForm推荐书籍购买地址:http://item.taobao.com/item.htm?spm=a230r.1.14.42.BdPmmr&id=18490486823

AutoForm书籍教材基本信息:
1、 书名
《AutoForm原理技巧与战例实用手册》

2、审阅
本书经过AutoForm工程技术有限公司的技术总监卡利尔巴特的审阅并寄语读者,同时中国模具技术的泰斗、中国工程院院士阮雪榆教授也审阅了本书并为本书写序题字。

3、 总页数
820P,
全彩色,铜版纸,分上下两册,上册418P,下册402P

4、 价格(总价248元,优惠至238元)
书籍价格(出版社定价):238.00元(不走分销渠道,定价已降到最低)

1DVD光盘:10.00元(优惠后,光盘相当于赠送)

包括所有的练习例程和操作视频,可参见第二、三张预览图片。

5、其他优惠信息

凡购买书籍的朋友,全5分好评后可赠送AutoForm Plus R3.1的汉化包,支持Winxp/Win7 x32/x64的系统。AutoForm汉化预览图片参见下图: 继续阅读

问题:

写了一个壳xp下运行正常,但在w7下运行没有任何提示程序就退出了,用od载入单步运行出错说是

然后看了一下原来是载入的地址不是程序的原地址0x400000,变为

但我确信在处理引导程序时我已经将重定位表擦除了,迷茫中。。。。。。。

用od重新载入发现基址又变了,好在由此可以肯定程序不能在w7下运行是因为在w7下每次载入程序时的基址是变化的。

解决:

用od载入我的引导程序发现他在w7下地址也是不停的变化的,然后在google上搜索了一下找到了看雪上的这个文章:

http://bbs.pediy.com/showthread.php?t=117096原来是连接器的问题:

将这个值改为”否”编译后用od载入发现文件的基址不再变化了,但问题也随之而来—–重定位表没了,这个引导程序必须有重定位表,因为要引导不同的程序必须重定位自身。

然后用lordpe对比了一下随机地址和固定基址的程序发现

这个值不同,用c32载入改40 81 为00 81发现程序有重定位表的时候基址也不会变化了。

 

自己的程序 链接选项里别选动态基址
别人的程序的话
pe头里Characteristics位0置1,表示没有重定位
或者DLLCharacteristics位6置0,表示不支持aslr技术
重新加载 基址一般就固定了

1

2

 

 

这几天突然对Autocad比较感兴趣,参照Wiley出版1200多页的参考书一步步学下来,发觉英文版本要比中文有趣的多,英文版更注重对命令的使用,排版和整体界面看着也比较舒服,这几天接触到Layout的输入设置的时候突然卡壳了,发现按照教程的步骤加载不了stb格式的模板,而系统默认的均是ctb格式,加上习惯按照教程逐步学下来,为此颇为停顿伤脑筋,上百度搜索,不知道是不是这个问题太简单,还是其他的什么原因,给出的答案不具有操作性:虽然给出convertpstyles命令,但是在使用中发现自己制作的stb文件不能转换,提示not contain a color mapping table,所以继续不了。
再看看国外朋友有没有好的解决办法,输入autocad stb ctb等关键词后,找到了一个解决办法:
Step1:随便制作一个ctb格式文件,如Tempt.ctb;
Step2:使用命令Convertctb,把Tempt.ctb转化成Tempt.stb;
Step3:使用命令Convertpstyles,选择Tempt.stb,提示Drawing converted from Color Dependent mode to Named plot style mode,说明已切换到stb格式的模式了。
经过以上三步,你可以看到你需要加载的stb格式文件同时也出现在下拉列表中了,可以自由的使用了。

网上有个补丁能让你顺利在64位WIN7里安装,不过那个并不完美,有些菜单因那个补丁而变成英文的了。而我这个,直接修改源文件,安装出来的仍然是全中文。
1. 需要的软件:ScriptLogic MSIStudio
推荐这个版本:
http://www.xiazaiba.com/html/1233.html
这是个专门修改MSI安装包的工具
简单介绍下它的优点:比ORCA简单,比Installshield体积小巧许多。
2. 将32位的AUTOCAD2008的CD1和CD2解压到同一文件夹内
我们需要修改的就是ACAD.msi 和 setup.ini 这两个文件
3. 用MSI STUDIO打开acad.msi
4.注意左侧一列,展开 “Dialogs and Actions” 下的 “Event Sequencing”,可以看到 “InstallExecuteSequence”,在里面找到”CheckFor64BitOS”,选中后点击右上角的“Remove”。然后在左侧“Custom Actions”里面找到一个同名的,点击右键,删除。点击保存。关掉程序。
5.用记事本打开setup.ini,找到#====================Platform Requirement下面的PLATFORM=NO_WOW_64_PROCESS这一行,删除整行。
6.运行ACAD.msi进行安装,再也不会有“32位程序不能在64位系统中安装”的提示了,一路顺利安装。

(2)挂载在CAD2010上。
我们只需要下载AutoCAD2010的32位版,通过下面的修改就可以同时兼容32位和64位操作系统,二合一可以节省很多的硬盘开销。

1.用Orca打开\x86\acad\acad.msi
这是CAD的主安装程序,
在左边表栏,点击InstallExecuteSequence项,在右边找到 CheckFor64bitOS和 LaunchConditions这两项。分别在上面点击鼠标右键,选择“删除行”。

2.用Orca打开\x86\acad\zh-CN\AcadLP.msi 以及 \x86\acad\en-us\AcadLP.msi
分别是中文语言包和英文语言包,
分别删除InstallExecuteSequence里的LaunchConditions (里面没有CheckFor64bitOS这项)

3.用记事本打开根目录下的setup.ini
这是安装配置文件,
需要修改的地方有:x64_IMAGE_PATH=x64 改为 x64_IMAGE_PATH=x86
[ACAD]下面的 PLATFORM=NATIVE 改为 PLATFORM=ALL
PREREQUISITE=OS;IE;SSE2…… 这行里面删除 “OS;”

然后直接运行根目录下的setup.exe,一路顺畅地安装吧,不管32位或64位系统都不会再出现无法安装的提示了。

这样的优点是这个安装程序既可以安装在32位系统上,又可以安装在64位系统里,免去了下载和储存的烦恼。
修改好的程序使用32位的激活程序完美激活,
其实32位的CAD在64位的系统中运行一点问题也没有,即使官方版64位的CAD中也有很大一部分文件使用32位的。

InstallShield 的数据包一般格式为 data1.cab,同时有一个 data1.hdr,用于描述文件分组定义,如果文件较多,还会存在一个 data2.cab ,实际上是分卷压缩包。

ISCAB 6.0 以下的版本可以使用 ZIPSCAN 解压,也可以使用 WinPack 进行文件的提取和替换、添加。

高版本的 ISCAB 可使用 InstallShield 中提供的命令行工具进行操作,以InstallShield X为例,安装InstallShield X后,从安装目录下的.\system中提取以下文件:

代码 (双击代码复制到粘贴板)ISCAB.exe
ISTools.dll
MediaBuild40.dll

之后可以脱离 InstallShield 运行。

·首先要提取安装包结构信息,使用命令行

ISCAB data1.cab -lx -iCAB.INI

将信息输出到 CAB.INI 文件,大致如以下的格式:
代码 (双击代码复制到粘贴板)[ISCAB Info]
Product=ISCAB
Version=2.0

[Dat Files]
File1=”Setup.dll”

·如果要从包中移除某些文件或者替换文件(也要先移除,然后再重新加入),应编辑导出的 CAB.INI 文件,仅保留头部描述段([ISCAB Info])和要移除的文件描述(注意,文件所在的组描述应保留,如 [Dat Files]),将编辑后的文件另存为 DEL.INI,使用命令行

ISCAB data1.cab -r -iDEL.INI

·如果要向包中添加文件,应将相应文件放置在当前目录下,同时和 data1.cab 同目录下的 setup.inx,setup.ini 等文件都必须存在。编辑导出的 CAB.INI 文件,仅保留头部描述段([ISCAB Info])和要加入的文件描述(注意,文件所在的组描述应保留,如 [Dat Files]),将编辑后的文件另存为 ADD.INI,使用命令行

ISCAB data1.cab -a -iADD.INI

好了,安装文件打包完成了,就像“原装”的一样,简单吧?

Win7和Vista操作系统使用KMplayer播放视频文件时,屏幕会闪一下,之后会有一个提示Aero配色方案转变的信息。

处理完成方法:

KMplayer上的视频文件渲染那一项用“VMR9未渲染”,如果用默许的覆盖合成器就不兼容Aero。

安装cad2008了,用压缩包内的注册机激活了,可是用了几天,再启动出线时验证许可证界面,过了很久现实失败,要求再次激活,用注册机激活成功,再启动cad时又需要验证,又失败,又提示激活,总是重复,cad根本用不了了。
再网上下了个AutoCAD2008Chs_KeyGen激活,同样是重复激活.

解决办法:把 C:\Documents and Settings\All Users\Application Data\Autodesk\Software Licenses 下的 *.dat 文件删除,重新算激活码!
刚才就是这样做了,可以激活了,要是没有删除这个文件,得到的认证码是28位的,删除以后,打开CAD2008得到的认证码是24位的,就可以激活了.

使用微软的ActiveX Scripting技术,可以在应用程序中集成使用vbscript或这javascript脚本语言。

在delphi中点击Component菜单的Import Activex Contol….菜单,选择Microsoft Script Control并添加,然后把这个控件放置在form上,就可以使用脚本了。

也可以使用CreateOleObject(‘MSScriptControl.ScriptControl.1’)创建。

如何使用脚本操作应用程序呢?很简单,在delphi中创建一个Automation object类,通过这个类处理程序中的对象。然后创建一个Automation object类的实例,传递给Scriptcontrol就可以了。(点击 File | New menu, 选择ActiveX 页的 Automation Object wizard。)

ScriptControl1.SitehWnd := Self.Handle;

FAutoObject := TExposingObjectsDemo.Create;
ScriptControl1.AddObject(‘DemoObject’, FAutoObject, True);

在脚本中通过DemoObject访问FAutoObject对象,通过FAutoObject实现操作应用程序的母的。

  ScriptControl 对支持 ActiveX(TM) Script 的宿主 Script 引擎提供简单接口。接下来我们对被转化成ScriptControlClass类的ScriptControl的属性和方法进行一些说明。

属性

  AllowUI 属性:应用于 ScriptControl 本身或 Scirpt 引擎显示的用户界面元素,可读写。

  CodeObject 属性:返回对象,该对象用于调用指定模块的公用成员。只读。

  Error 属性:返回 Error 对象,其中包含所发生的最后一个错误的相关详细信息。只读。

  Language 属性:设置或返回正在使用的 Script 语言名称。可读写。

  Modules 属性:为 ScriptControl 对象返回模块集合。只读。

  Procedures 属性:返回在指定模块中定义的过程集合。只读。

  SitehWnd 属性:设置或返回窗口的 hWnd,通过执行 Script 代码,此窗口用于显示对话框和其他用户界面元素。可读写。

  State 属性:设置或返回 ScriptControl 对象的模式。可读写。

  Timeout 属性:设置或返回时间(毫秒),此时间后用户可选择中止 Script 代码的执行或允许代码继续执行。可读写。

  UseSafeSubset 属性:设置或返回 Boolean 值,指明宿主应用程序是否有保密性要求。如果宿主应用程序需要安全控制,则 UseSafeSubset 为 True,否则为 False。可读写。

方法

AddCode 方法:向模块添加指定代码。可多次调用 AddCode 方法。

AddObject 方法:使主机对象模型对 Script 引擎可用。

Eval 方法:计算表达式并返回结果。

ExecuteStatement 方法:执行指定的语句。

Reset 方法:放弃所有已经添加到 ScriptControl 中的 Script 代码和对象。

Run 方法:运行指定过程。

事件

Error 事件:出现运行时错误时,发生此事件。

Timeout 事件:当超出了 Timeout 属性指定的时间且用户在结果对话框中选定了 End 时,发生此事件。

补充几点

  AllowUI 属性如果设置为false,则显示对话框之类的语句不起作用,如在 VBScript 中MsgBox 语句,JavaScript中的alert等,并且如果执行的脚本超出TimeOut设置的毫秒数,也不会跳出超出时间提醒的对话框,反之则相反;重新设置 Language 属性会清空AddCode加载的代码;对于TimeOut属性,发生超时时,ScriptControl 检查对象的 AllowUI 属性,确定是否允许显示用户界面元素。

用OD调试一些加壳程序,如Themida等,可能你会发现下断后(包括硬件断点),程序跑到断点时,OD会出现假死现像。

解决方法很简单,打开OD配置文件ollydbg.ini,你会发现:
Restore windows= 123346 //这个Restore windows可能会是一个很大的值

现在只需要将Restore windows=0,重新用OD调试程序,假死问题就消失了。

造成这问题的原因我也不明白。

红红的ZORO,精致的包装。

盒

继续阅读