VbScript:Wscript.Shell(com对象)

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(根键+子键)——删除子键以及子键下的所有子键以及键项。

photoshop:剖析.r文件的pipl资源

.r文件是photoshop特有的资源定义文件,主要是定义插件工作的环境,相当于c语言的rc文件。

.r文件会被编译成pipl文件,并被对话框所引用(所以,所有的插件都必须有一个对话框,哪怕从不调用这个对话框)。

.r文件内容一般包括下面:

1.pipl资源

2.aete资源

3.dlg资源

4.data数据

5.string数据

其中pipl资源是必须的,其他资源视情况而定。下面重点介绍pipl资源。

Continue reading photoshop:剖析.r文件的pipl资源

Autocad:字典(Dictionary)对象

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。

photoshop:FilterCase的定义

filtercase_67

FilterCase是Filter插件的一个属性,表示当前图像文档的状态。同样适用于.r文件里filtercaseInfo属性的描述。
Filter共有7中状态,分别用1~7数字表示。

Continue reading photoshop:FilterCase的定义

photoshop:用类来写一个滤镜插件。

ps插件的编程程序用c++来写,共分四个部分。

1公共CPP。调用在SAmplecode\common\sources里的cpp。

2.头文件。

3.主CPP

4.资源文件,包括photoshop特有的.r文件和对话框资源(每个插件都有一个对话框,哪怕是空的,目的是#include “about.rc”——装载“关于”对话框以及包含.r文件编译而成的.pipl文件。

Continue reading photoshop:用类来写一个滤镜插件。

photoshop:Sdk的公共CPP

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

photoshop:认识C语言的数据类型

以前都使用VB等高级语言,不关心数据类型的实际存在形式,不关心内存管理,但是ps使用是C语言,这涉及到数据类型之间的大量转换,涉及指针和句柄等,所以认真了解c语言数据类型的内在本质。

数据类型的内在本质

1.所有数据在内存都是“按位”,“顺序”存储。意思是说对于计算机而言,没有所谓的整数,字符串

等数据类型,只有连续不间断的“0”,“1”的数据排列。

2.对于编程而言,如果每次处理数据都是一位一位的读,而且数据是不间断的,无分割的,这导致一是数据处理慢,二是无法确定数据的长度。

Continue reading photoshop:认识C语言的数据类型

AutoCad 的病毒

针对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里的一些功能不能用,如翻图层。

photoshop:Descriptor小结

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小结

photoshop:control->Get读取pS的各元素属性

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的各元素属性