By ljy, on 一月 20th, 2012
1、Wscript对象是操作注册表中的键项的。生成语句如下:
Set fs=CreateObject(”Wscript.Shell”)
2、注册表中键项由根键+子键+键名组成。
根键有五个:HKEY_ClASSES_ROOT(类定义),HKEY_CURRENT_USER(当前用户使用信息定义),HKEY_LOCAL_MACHINE(本地计算机各类信息定义),HKEY_USERS(用户组定义),HKEY_CURRENT_CONFIG。
根键相当于盘符,子键相当于文件夹,文件夹可以嵌套的。子键是可以自定义的。如myprograme\myfoldre\mychildrenfolder……。注册表中的子键由window或软件预定义的,都可以编辑,但可能会导致系统或程序崩溃。
键名相当于文件名。
完整的键项表示如下:
HKEY_CURRENT_USER\Software\Google\Common\Rlz\RLZs\W1
其中:根键-HKEY_CURRENT_USER;子键-Software\Google\Common\Rlz\RLZs;键项-W1
3、键项的值有三种,分别表示为:”REG_SZ”;”REG_DWORD”;”REG_BINARY”,代表字符串,双字节数字和二进制数据。
4、Wscript主要方法有RegRead,RegWrite和RegDelete。
5、Wscript.RegRead(键项)-表示读取某键项的值,如果该键项不存在或键项书写不正确,将会出错。返回错误描述:没有路径。
6、Wscript.RegWrite(键项,值,键项值的类型)—修改键项的值。如果该键项不存在,将新建该键项后赋值,不会报错。
7、wscript.RegDelete(键项)——删除键项;Wscript.RegDelete(根键+子键)——删除子键以及子键下的所有子键以及键项。
By ljy, on 十月 25th, 2011
.r文件是photoshop特有的资源定义文件,主要是定义插件工作的环境,相当于c语言的rc文件。
.r文件会被编译成pipl文件,并被对话框所引用(所以,所有的插件都必须有一个对话框,哪怕从不调用这个对话框)。
.r文件内容一般包括下面:
1.pipl资源
2.aete资源
3.dlg资源
4.data数据
5.string数据
其中pipl资源是必须的,其他资源视情况而定。下面重点介绍pipl资源。
Continue reading photoshop:剖析.r文件的pipl资源
By ljy, on 十月 25th, 2011
Autocad的字典对象分成文档字典和实体字典两种。
文档字典是Dwg文档附带的数据容器,保存在Dictionaries集合里面。在VB,lisp,arx定义作Dictionary。文档字典只跟随dwg文件,不会随物体作块时一同导出,也不会在文档当做块调入时导入新的文档。
实体字典是dwg里的实体附带的,成为ExtensionDictionary。与文档字典是相同的类,只是宿主不同。当时实体字典始终跟随实体存在,随实体导出、导入而导出和导入。
字典是一个数据集合,容纳的数据为XRecord和AcRxClass两种。
AcRxClass是ARX定义的物体类型,由Dictionary.addobject加载。如果使用非ARX编程,使用该类较麻烦,建议少用。
XRecord类似Xdata数据,但是其没有尺寸和顺序的限制,其使用1~369的组码(5和105除外)。而且Xrecord转为Dictionary而存在。Xdata使用1000以上组码,有尺寸限制,每个物体都可以附Xdata。
By ljy, on 十月 24th, 2011
FilterCase是Filter插件的一个属性,表示当前图像文档的状态。同样适用于.r文件里filtercaseInfo属性的描述。
Filter共有7中状态,分别用1~7数字表示。
Continue reading photoshop:FilterCase的定义
By ljy, on 十月 23rd, 2011
ps插件的编程程序用c++来写,共分四个部分。
1公共CPP。调用在SAmplecode\common\sources里的cpp。
2.头文件。
3.主CPP
4.资源文件,包括photoshop特有的.r文件和对话框资源(每个插件都有一个对话框,哪怕是空的,目的是#include “about.rc”——装载“关于”对话框以及包含.r文件编译而成的.pipl文件。
Continue reading photoshop:用类来写一个滤镜插件。
By ljy, on 十月 23rd, 2011
Sdk的公共Cpp指sdk里的SampleCode\common\sources文件夹内的31个cpp程序文件,它们包含了编制插件时需要的几乎所有的函数集。这些函数各自功能是分类,成组使用的。
一、专用于MAC(苹果)系统的CPP,共3个(
FileUtilitiesMac.cpp,DialogUtilitiesMac.cpp,PIMacUI.cpp)
,其余在Win32系统下使用,部分是两个平台通用的。
注:下面的CPP都是都可用于win32的。
Continue reading photoshop:Sdk的公共CPP
By ljy, on 十月 20th, 2011
以前都使用VB等高级语言,不关心数据类型的实际存在形式,不关心内存管理,但是ps使用是C语言,这涉及到数据类型之间的大量转换,涉及指针和句柄等,所以认真了解c语言数据类型的内在本质。
数据类型的内在本质
1.所有数据在内存都是“按位”,“顺序”存储。意思是说对于计算机而言,没有所谓的整数,字符串
等数据类型,只有连续不间断的“0”,“1”的数据排列。
2.对于编程而言,如果每次处理数据都是一位一位的读,而且数据是不间断的,无分割的,这导致一是数据处理慢,二是无法确定数据的长度。
Continue reading photoshop:认识C语言的数据类型
By ljy, on 十月 14th, 2011
针对AutoCad的病毒是Lisp程序。因为Dwg为数据库文件,普通病毒不会感染。
AutoCad中病毒症状:
1.打开CAD时,在命令栏里会显示“错误:String null….”类似的消息。正常情况是不会有任何错误显示的。
2.在DWG绘图目录下自动生成acad*.lsp或acad.fas文件。
AcadCad中毒不会影响Cad制图,破坏DWG文件,但是会拖慢系统。
手工解决方法:
1.删除目录“C:\Documents and Settings\xxx\Application Data\Autodesk\AutoCAD 2010\R18.0\chs\Support”(其中xxx表示你登陆名,AutoCAD 2010是你使用的cad版本,根据实际情况来定,这只是示例)里的acad*.lsp,acad.fas和*.mnl程序。
2.使用文件收索功能,收索硬盘所有目录里的“acad*.lsp”和”acad.fas”,然后全部删除。
3.删除CAD安装目录“C:\Program Files\AutoCAD 2010\Support”里所有的lisp程序(*.lsp)。
4.找一台没有中病毒的机子,在把“C:\Program Files\AutoCAD 2010\Support”里所有的lisp程序(*.lsp)拷贝回来。如果没有拷贝回来,CAD里的一些功能不能用,如翻图层。
By ljy, on 十月 10th, 2011
Descriptor是ps传递信息,元素性质的数据集合。
数据结构
其数据结构为:
index(序号),Name(名称),Type(值类型),Vale(值)。
Name代表了当前数据的名称,该名称具有唯一性,而且该名称必须是”PITerminology.h”里定义的值。
Type是Value的类型,同样预定义,共有typeInteget,typeChar,typeObject,typeBoolean,typeEnumerated,typeValueList六种。
typeInterget-是int32类型,包含int32,unint32,fload和unfload。
typeChar是string。
typeBoolean是布尔值。
typeEnumerated是定义的枚举数,在”PITerminology.h”里定义。
typeObject是Descriptor(Descriptor可以嵌套使用)。
typeValueList是ActionList类。
Continue reading photoshop:Descriptor小结
By ljy, on 十月 7th, 2011
Action Control suite的Get方法可以读取ps里所有元素的所有属性。格式如下:
sPSActionControl->Get(&result, reference);
<PIActionReference reference = NULL; PIActionDescriptor result = NULL;>
result是根据reference定义的元素对象,把提取的值按Descriptor的形式保存。
要想获得正确的值必须定义好reference。
Continue reading photoshop:control->Get读取pS的各元素属性