脚本对象

脚本可以使用许多不同的对象与 Opus 进行交互。例如,文件窗口 对象表示一个物理 文件窗口 窗口,向脚本提供有关该文件窗口的信息,并允许脚本修改或控制该文件窗口。

一个对象有两个主要类型的接口可以调用:

  • 属性使脚本能够查询(有时还会设置)一个简单值。例如,文件窗口 对象具有一个 title 属性,该属性使脚本能够检索文件窗口窗口的标题字符串。

  • 方法是对象提供的函数,脚本可以调用它们来执行任务。例如,DOpus 对象有一个 Output 方法,该方法使脚本能够向脚本日志中输出一个文本字符串。

属性和方法之间的主要区别是,方法可以(但并不总是)接受修改其行为的参数,并且不必(但通常会)返回结果。

变量类型

返回结果的属性和方法可以返回许多不同类型的变量,方法通常使用一个或多个参数,这些参数也可以是多种类型。ActiveX 脚本语言通常是 无类型的 - 也就是说,不必预先定义变量的类型,并且从一种类型转换为另一种类型通常(但并非总是)自动进行。Opus 脚本主要使用以下类型的变量:

  • Int - 一个整数(有符号;有效范围为 -2147483648 到 2147483647)。

  • Currency - 这是一个标准的变体类型,并且仅在需要比 Int 能够容纳的更大的数字的少数情况下使用它(不幸的是,ActiveX 脚本并不总是支持 64 位整数类型)。

  • Decimal - 一个无符号的 64 位值(最大值为 18,446,744,073,709,551,616)。并非所有语言都支持此功能 - JScript 支持,但 VBScript 不支持。

  • String - 一个文本字符串

  • Bool - 一个布尔值(TrueFalse

  • Date - 一个日期/时间值

  • Collection - 一个集合,其中包含多个(通常)相同类型的对象。在一些语言中(例如,在 VBScript 中,使用 For Each 构造)中,可以轻松枚举集合。仅由 Opus 返回集合 - 与数组(或 Vector 对象)不同,它们永远不会被直接创建或修改(尽管在某些情况下可以使用一些脚本方法来修改它们)。例如,Tab 对象有一个名为 selected 的属性,它表示该标签页中当前选择的所有项 - 它是一个项的 集合

  • Object - 一个具有已定义方法和属性的 Opus 脚本对象(如下所列的对象类型之一)。某些对象既可以是对象,又可以是集合 - 也就是说,它们具有方法和属性,但也可以像集合一样进行枚举。某些对象还具有一个 默认值 - 也就是说,仅使用对象名称而不使用任何方法或属性将返回它们自己的值。例如,Metadata 对象的默认值是一个表示可用主要元数据类型的字符串。还可以使用特殊 def_value 属性名称引用对象的默认值。

  • Variant - 任何类型的变量(这与几个对象一起使用 - 例如,Var 对象可以存储一个变体)

全局对象

Opus 在通过 Opus 调用脚本时为脚本提供了两个作为全局变量的对象:

  • DOpus: 此**对象可供 所有 脚本使用。它提供了各种辅助方法和集合,可用于访问诸如文件窗口和工具栏之类的对象。

  • Script: 当调用其各种事件处理程序时,此对象将提供给 脚本插件。它提供了与脚本本身相关的信息。

事件对象

Opus 在脚本中的一个方法中提供许多对象作为参数。例如,当调用 脚本函数(例如,单击按钮时),Opus 将调用其 OnClick 方法,并向其传递一个 ClickData 对象。

其它对象

其余对象全部使用上面列出的对象提供的属性或方法来获取。例如,文件窗口 对象是使用 DOpus.listers 集合属性获取的,并且 Vector 对象是使用 DOpusFactory.Vector 方法获取的。

  • Alias:此对象表示 文件夹别名,并且使用 Aliases 对象检索。

  • Aliases:此对象是所有已定义文件夹别名的集合。它使用 DOpus.aliases 集合属性检索。

  • Args:该对象表示为 脚本定义的内部命令 提供的命令行参数。它可从 ScriptCommandData.Func.args 属性获取。

  • AudioMeta:该对象提供与音频文件相关的元数据属性。它从 Metadata 对象获取。

  • AudioCoverArt:该对象提供访问音频文件嵌入的封面图片。它从 AudioMeta.coverart 属性获取。

  • Blob:该对象提供简单界面来处理二进制数据。它从 DOpusFactory.Blob 方法获取,也由 AudioCoverArt.data 属性返回。

  • BusyIndicator:使用 BusyIndicator 对象,可以通过脚本控制面包屑栏的忙碌指示器。

  • Column:该对象表示已添加到某标签页显示中的某列。列集合可从 Format 对象获取。

  • Command:该对象用于运行 Opus 命令。它从 ScriptCommandData.funcClickData.func 属性获取,也可以通过 DOpusFactory.Command 方法创建。

  • ControlControl 对象表示 脚本对话框 的控件;它允许你读取和修改控件的值(和内容)。

  • CustomFieldDataCustomFieldData 对象通过 GetNewNameData.custom 属性提供给 重命名脚本。它提供对脚本添加到重命名对话框的任何 自定义字段 的值访问。

  • Date:该对象提供,以方便处理表示日期的变量。它从 DOpusFactory.Date 方法以及其它对象中的各种属性获取。

  • Dialog:该对象用于显示对话框或弹出菜单。它从 Func.Dlg, Command.DlgDOpus.Dlg 方法获取。

  • DialogListColumnDialogListColumn 对象表示 脚本对话框。详细信息模式列表视图控件中的某列。通过枚举**DialogListColumns对象获取.~control**

  • DialogListColumnsDialogListColumns 对象允许查询或修改 脚本对话框。详细信息模式列表视图控件中的列。使用 Control.columns 属性获取 DialogListColumns 对象。

  • DialogListGroupDialogListGroup 对象表示 脚本对话框列表视图控件中的某组。它由 Control.GetGroupById 方法返回。

  • DialogListItemDialogListItem 对象表示 脚本对话框组合框列表框控件中的某项。它由 Control.GetItemAtControl.GetItemByName 方法返回。

  • DialogOption:该对象与 Dialog 对象联合使用。它允许指定要添加到对话框的复选框选项。

  • Dock:该对象表示浮动工具栏。工具栏对象提供集合,表示当前处于浮动状态的所有该工具栏的实例。

  • DocMeta:该对象提供与文档文件相关的元数据属性。它从 Metadata 对象获取。

  • DOpusFactory:该对象是帮助对象,可用于创建其它各类对象,如 MapVector。它从 DOpus.Create 方法获取。

  • DPIDPI 对象是帮助对象,提供若干与系统 DPI 设置相关的属性和方法。它通过 DOpus.DPI 属性返回。

  • DriveDrive 对象提供有关系统上某驱动器(硬盘驱动器、CD ROM 等)的信息。系统上驱动器的 Vector 可从 FSUtil.Drives 方法获取。

  • ExeMeta:该对象提供与可执行(程序)文件相关的元数据属性。它从 Metadata 对象获取。

  • FavoriteFavorite 对象表示 收藏文件夹。通过枚举或编制 Favorites 对象索引获取它。

  • FavoritesFavorites 对象保存所有定义的 收藏文件夹 的集合。它从 DOpus.favorites 方法获取。

  • File:该对象允许从文件读取或写入二进制数据。它从 FSUtil.OpenFileItem.Open 方法获取。

  • FileAttr:该对象表示文件属性(例如只读、压缩包等)。它由 ItemFormat 对象使用,并且可以通过 FSUtil.NewFileAttr 方法创建。

  • FileGroup:该对象公开有关文件组的信息(当 Tab 设置为按特定列分组时)。它由 ItemTab 对象使用。

  • FileSize:该对象用于表示字节大小(主要是因为 ActiveX 脚本不支持 64 位整数)。它由 ItemTabStats 对象使用。

  • FiletypeGroup:该对象表示文件类型组(如 文件类型组 部分的 文件类型编辑器 中所配置)。

  • FiletypeGroups:该对象表示一个或多个文件类型组的集合。

  • Filter:让你创建复杂过滤器,当从脚本运行时可与诸如 Copy 的命令一起使用。

  • FilterParseError:用于在使用 Filter 对象时访问有关解析错误的信息。

  • FolderEnum:该对象让脚本枚举文件夹的内容。它使用 FSUtil.ReadDir 方法获取。

  • FontMeta:该对象提供与字体文件相关的元数据属性。它从 Metadata 对象获取。

  • Format:该对象在标签页中提供有关显示格式的信息。它从 Tab.format 属性获取。

  • FSUtil:该对象提供与文件系统活动相关的多种实用程序方法。它从 DOpus.FSUtil 属性获取。

  • Func:该对象传给 脚本函数(通过 ClickData.func)或 脚本定义的内部命令(通过 ScriptCommandData.func)。它提供与函数调用(源和目标标签页、参数等)相关的信息。

  • GlobalFilters:该对象让你访问有关全局过滤器设置的信息(配置中 过滤器 页面上配置)。

  • Image:该对象从磁盘加载可显示在 脚本对话框 中的图像文件或图标。

  • ImageMeta:该对象提供与图像文件相关的元数据属性。它从 Metadata 对象获取。

  • IncludeFileInitData:如果 包含文件 脚本实现可选的 oninitincludefile 方法,那么它将接收该对象,以便其提供有关包含文件的信息。

  • Item:该对象表示文件或文件夹。它可以从 Tab 对象的各种方法中返回,在使用 FSUtil.ReadDir 方法枚举文件夹时,以及用于为使用 Command 对象执行命令提供文件时。

  • ItemsItems 对象让你枚举一个或多个 Item 对象的列表。

  • 文件窗口:该对象表示 文件窗口 窗口。

  • 文件窗口s文件窗口s 对象是所有当前打开的文件窗口窗口的集合(每个窗口由 文件窗口 对象表示)。它可以从 DOpus.listers 属性中获取。

  • Map:该对象类似于数组或向量(例如 Vector),因为它可以存储一个或多个对象,但其优点在于使用字典系统定位对象,而不是数值索引。它从 DOpusFactory.Map 方法获取。

  • Metadata:该对象表示文件或文件夹的元数据。它可以从 Item.metadata 属性以及 FSUtil.GetMetadata 方法中获取。

  • MsgMsg 对象表示 脚本对话框 输入事件消息。它由 Dialog.GetMsg 方法返回,当为你运行 分离的对话框 的消息循环时,你会调用该方法。

  • OtherMeta:该对象提供与文件和文件夹相关的常规元数据属性。它从 Metadata 对象获取。

  • PairedFolder:该对象表示从 FSUtil.GetFolderPair 方法中获取的 配对文件夹

  • Path:该对象表示文件系统路径。它包含用于操作该路径的几个方法。路径对象由几个属性返回,并且可以通过 FSUtil.NewPath 方法创建。

  • Progress:该对象表示进度对话框,它让你在视觉上向用户指示脚本函数的进度。它从 Command.progress 属性获取。

  • QuickFilter:此对象提供了一个标签中的快速过滤状态的信息。它从 Tab.quickfilter 属性中获取。

  • Rect: Rect 对象代表一个矩形。

  • Results: 此对象代表命令的结果(发生错误时的错误代码,以及命令创建的任何新标签或文件窗口)。它从 Command.results 属性中获取。

  • ScriptColorPair:此对象捆绑了一对颜色(文本 / 背景)。

  • ScriptColumn:此对象代表一个 脚本定义的列。它从 ScriptInitData.AddColumn 方法中获取,同时处理 OnInit 事件。

  • ScriptCommand:此对象代表一个 脚本定义的内部命令。它从 ScriptInitData.AddCommand 方法中获取,同时处理 OnInit 事件。

  • Script即时查找Command:此对象为延伸了即时查找字段(/Manual/scripting/example_scripts/extending_the_fayt.zh.md)的脚本加载项的 ScriptCommand 对象提供为一个属性。

  • ScriptConfig:此对象代表 Opus 为每个脚本存储的脚本定义的配置数据。配置项目通过 ScriptInitData.config 属性初始化,然后通过 Script.config 属性可用于脚本。

  • ScriptStringsScriptStrings 对象由 DOpus.strings 属性返回。它允许你访问通过 字符串资源 定义的任何字符串。

  • ShellPropertyShellProperty 对象代表一个 shell 属性 - 一个来自 Windows 或第三方扩展的有关文件或文件夹的元数据项。FSUtil.GetShellPropertyList 方法让你可以获取一个可用的 shell 属性列表。

  • SmartFavoriteSmartFavorite 对象代表一个文件夹在 智能收藏夹 表中的条目。通过枚举或索引 智能收藏夹 对象来检索它。

  • 智能收藏夹智能收藏夹 对象让你可以查询 智能收藏夹 表的内容。它从 DOpus.smartfavorites 属性中获取。

  • SortOrder:如果 手动排序模式 处于活动状态,则 SortOrder 对象由 Format.manual_sort_order 属性返回。它允许你查询和修改排序顺序。

  • StringTools:此对象提供用于字符串编码和解码的实用函数。它从 DOpusFactory.StringTools 方法中获取。

  • StringSet:此对象与字符串的数组或向量(例如 Vector)类似,但其优势在于使用词典系统来定位字符串,而不是使用数字索引。它从 DOpusFactory.StringSetStringSetI 方法中获取。

  • SysInfoSysInfo 对象由 DOpusFactory.SysInfo 方法创建。它允许脚本访问各种系统信息,脚本可能无法通过其它方式获取。

  • Tab:此对象代表一个文件窗口中的文件夹标签。文件窗口的标签通过各种文件窗口对象属性(例如 文件窗口.activetab)提供,并且还用于指定命令的来源/目标(例如 Command.sourcetab)。

  • TabGroup:此对象代表一个 文件夹标签组。通过枚举 TabGroups 对象来访问它。

  • TabGroups:此对象提供访问权限,并且允许你修改已配置的 文件夹标签组 列表。它从 DOpus.tabgroups 属性中获取。

  • TabGroupTabEntry:此对象代表一个 标签组 中的文件夹标签。

  • TabGroupTabList:此对象代表一个 标签组 中的文件夹标签列表。

  • TabStats:此对象提供有关文件夹标签的各种统计信息(所选文件数、总项数等)。它从 Tab.statsTab.selstats 属性中获取。

  • Toolbar:此对象代表一个工具栏。它通过 DOpus.toolbars文件窗口.toolbars 属性获取。

  • ToolbarsToolbars 对象允许你枚举 Directory Opus 配置中定义的所有工具栏(无论当前是否启用)。

  • UnorderedSet:类似于 StringSet,但可以存储任何类型的元素,而不仅仅是字符串。

  • Var:这个对象表示变量。工具栏按钮、热键和脚本可以读取和存储变量,变量可以从 Opus 的一次会话保存到另一次会话。Var 对象是从 Vars 集合获得的。

  • Vars:这个对象表示变量的集合。根据变量的范围,它可以从 DOpus.vars文件窗口.varsTab.varsCommand.varsScript.vars 属性获得。

  • Vector:这个对象类似于数组——它可以存储无限数量的任何类型的元素。Opus 脚本界面中的许多属性和方法都使用 Vector,在大多数情况下你可以将它们与数组互换使用。之所以提供 Vector,是因为有些脚本语言仅提供不完整或不兼容的数组——使用 Vector 表示对象可以在任何 ActiveX 脚本语言中一致使用。VectorDOpusFactory.Vector 方法创建。

  • Version:这个对象表示有关当前 Opus 版本的信息。它可以从 DOpus.Version 属性获得。

  • VideoMeta:这个对象提供与电影文件相关的元数据属性。它可以从 Metadata 对象获得。

  • ViewerViewer 对象表示一个独立的 图像查看器

  • ViewersViewers 对象是当前所有打开的独立的 图像查看器 的集合。可以通过 DOpus.viewers 属性获得它

  • Wild:这个对象允许脚本访问 Opus 中内置的模式匹配函数。它可以从 FSUtil.NewWild 方法获得。

  • WinVer:这个对象表示有关当前 Windows 版本的信息。它可以从 Version.winver 属性获得。

最后更新于