heX API 说明

heX 内置的所有方法及属性均挂载在 window 对象的 hex 对象下。事件可以通过监听 window 对象来响应。

列表

方法

hex.restore()

恢复当前窗口。

hex.move()

移动当前窗口。

hex.size()

调整当前窗口大小。

hex.minimize()

最小化当前窗口。

hex.maximize()

最大化当前窗口。

hex.close()

关闭当前窗口。

hex.showSystemMenu(x, y)

在指定位置弹出系统菜单。若菜单成功弹出则返回 true,否则返回 false。x (整型) - 菜单弹出 X 轴位置;
y(整型) - 菜单弹出 Y 轴位置。若参数个数小于 2 个或者参数不为整型则返回 undefined

hex.deleteSystemCommand(command)

删除指定的系统菜单项 command (整型)。若菜单项成功删除则返回 true,否则返回 false。若参数个数小于 2 个或者参数不为整型则返回 undefined
command 参数:

  • 0 = RESTORE 恢复
  • 1 = MOVE 移动
  • 2 = SIZE 调整大小
  • 3 = MINIMIZE 最小化
  • 4 = MAXIMIZE 最大化
  • 5 = CLOSE 关闭

hex.enableSystemCommand(command, enabled)

使能指定的系统菜单项 command (整型) 为 enabled (布尔)。返回上一次的设定值。若参数个数小于 2 个或者参数类型不符则返回 undefined

hex.insertSystemCommand(command, beforeCommand)

在指定的系统菜单项 beforeCommand (整型)前插入系统菜单项 command (整型)。若菜单项成功插入则返回 true,否则返回 false

hex.setPopupFormSize(width, height)

设置即将弹出的窗口的初始宽度 width (整型)及高度 height (整型)。此方法需要在 window.open() 之前调用。

hex.setPopupFormPosition(x, y)

设置即将弹出的窗口的初始 X (整型)轴及 Y (整型)轴位置。此方法需要在 window.open() 之前调用。

hex.sizeTo(width, height)

为窗口设置新的宽度 width (整型)和高度 height (整型)。返回一个对象,属性包含窗口原来的宽度及高度。若参数个数小于 2 个或者参数不为整型则返回 undefined

hex.moveTo(x, y)

为窗口设置新的 X (整型)轴和 Y (整型)轴的位置。返回一个对象,属性包含窗口原来的 X 轴和 Y 轴的位置。若参数个数小于 2 个或者参数不为整型则返回 undefined

hex.focusForm()

将窗口设置到最前端。若设置成功则返回 true

hex.setAsTitleBarAreas(x, y)

将指定坐标 x (整型) y (整型) 位置设置为窗口的非客户区。若设置成功则返回 true。客户区的概念参见:http://msdn.microsoft.com/en-us/library/windows/desktop/dd162743(v=vs.85).aspx

hex.setAsNonBorderAreas(x, y)

将指定坐标 x (整型) y (整型) 位置设置为窗口的非边框区域。

hex.setAsSystemMenuIconAreas(x, y)

将指定坐标 x (整型) y (整型) 位置设置为窗口的系统图标区域。

hex.getSize()

返回一个对象,包括当前窗口的宽度 width (整型)与高度 height (整型)。

hex.getPosition()

返回一个对象,包括当前窗口的 X (整型)周与 Y (整型)轴位置。还可能是下面的值:

  • SYSTEMDEFAULT (-1) 系统默认
  • PARENTCENTERED (-2) 父窗口中心
  • SCREENCENTERED (-3) 屏幕中心

hex.getWorkspaceRect()

返回一个对象,包括当前窗口所在屏幕的 RECT 信息—— left (整型) top (整型) right (整型) bottom (整型)。

hex.setFormIcon(path)

为当前窗口设置一个 path (字符串)指定路径下的图标。

hex.terminate()

终结当前应用程序。

hex.cancelMode()

触发系统的 CANCELMODE 消息。参见:http://msdn.microsoft.com/en-us/library/windows/desktop/ms632615(v=vs.85).aspx

hex.getMaximizedAdjustedBorderWidth()

返回最大化后溢出屏幕范围的边框宽度。只针对开启了 Aero 的 Windows。

hex.snapshot(rect, calback)

对浏览器窗口内部的指定区域进行截图,并在回调函数中返回操作结果,包括宽度、高度、以及包含截图元数据的 Uint8ClampedArray 对象。

rect 代表指定区域,可以是一个包含了 left, top, right, bottom 四个整数值的数组或者是一个包含了上述四个 key 的对象。如:
[0, 0, 100, 100] 或者 { left: 0, top: 0, right: 100, bottom: 100 }。

callback 回调函数中的参数:

  • success:布尔值,是否截图成功。
  • width:整型,最终截取的区域的宽度。
  • height:整型,最终截取的区域的高度。
  • uri:字符串,包含截图的 PNG 格式的 base64 URI 字符串。
  • array:Uint8ClampedArray 对象,包含截图图片内容的位图信息。

Example:

hex.snapshot([0, 0, window.innerWidth, window.innerHeight], 
    function (success, width, height, uri, array) {
  if (!success) return;
  var canvas = document.createElement("canvas");
  canvas.width = width;
  canvas.height = height;
  var ctx = canvas.getContext("2d");
  var imageData = ctx.createImageData(width, height);
  imageData.data.set(array);
  ctx.putImageData(imageData, 0, 0);
  document.body.appendChild(canvas);
});

hex.snapshotDesktop()

对整个桌面窗口的指定区域进行截图,并在回调函数中返回操作结果,参数定义同 hex.snapshot 方法。

Example:

hex.snapshotDesktop(hex.screen.fullRect, 
    function (success, width, height, uri, array) {
  if (!success) return;
  var img = new Image;
  img.src = uri;
  document.body.appendChild(img);
});

hex.getCursorScreenPosition()

返回当前鼠标指针在屏幕中的位置。

hex.openTarget(command)

打开一个外部命令,类似在控制台中执行命令。

hex.openExternal(url)

在默认浏览器中打开一个 URL。此 URL 必须为一个合法的 URL。

hex.showTargetInFolder(path)

在资源管理器或者 Finder 中定位指定的文件或文件夹。此 path 必须为一个合法的 path。

hex.updateManifest()

更新修改后的 hex.manifest 对象到 manifest.json 中。

属性

position 类型

用于 getPosition() 方法返回值。此类属性为只读属性。

  • SYSTEMDEFAULT (-1) 系统默认
  • PARENTCENTERED (-2) 父窗口中心
  • SCREENCENTERED (-3) 屏幕中心

activation 类型

用于 formActivation 属性返回值。此类属性为只读属性。

  • ACTIVATED (0) 激活
  • INACTIVATED (-1) 未激活

state 类型

用于 formState 属性返回值。此类属性为只读属性。

  • NORMAL (0) 常态
  • MINIMIZED (1) 最小化的
  • MAXIMIZED (2) 最大化的
  • HIDDEN (3) 隐藏
  • FULLSCREEN (4) 全屏

command 类型

用于 deleteSystemCommand(command) enableSystemCommand(command, enabled) insertSystemCommand(command, beforeCommand) 方法返回值。此类属性为只读属性。

  • RESTORE (0) 恢复
  • MOVE (1) 移动
  • SIZE (2) 调整大小
  • MINIMIZE (3) 最小化
  • MAXIMIZE (4) 最大化
  • CLOSE (5) 关闭

hex.applicationDirectoryPath

返回当前程序所在目录。此属性为只读属性。

hex.formState

返回当前窗口的显示状态 state

hex.formActivation

返回当前窗口的激活状态 activation。此属性为只读属性。

hex.formEnabled

返回当前窗口的使能状态。true 代表窗口可用。

hex.topMost

返回当前窗口是否总在最前。true 代表总在最前。

hex.transparency

返回当前窗口的透明度。取值范围 0(全透明) - 255(不透明),仅当 manifest.jsontransparency 不为 none 时有效。

hex.minWidth

返回当前窗口的最小宽度。若设置为 NONE (-1) 则忽略此设置。

hex.minHeight

返回当前窗口的最小高度。若设置为 NONE (-1) 则忽略此设置。

hex.maxWidth

返回当前窗口的最大宽度。若设置为 NONE (-1) 则忽略此设置。

hex.maxHeight

返回当前窗口的最大高度。若设置为 NONE (-1) 则忽略此设置。

hex.commandLineArguments

返回命令行参数列表。

hex.screen

返回一个对象,包含了当前屏幕的各种信息。

Example:

{
  "displays": [                 // 包含当前显示设备的列表
    {                           // 第一台设备
      "primary": true,             // 这台设备是主设备
      "boundsRect": {              // 这台设备的 Rect
        "left": 0,
        "top": 0,
        "right": 1680,
        "bottom": 1050
      },
      "workAreaRect": {            // 这台设备的工作区域 Rect
        "left": 0,
        "top": 0,
        "right": 1680,
        "bottom": 968
      },
      "current": false             // 当前窗口不在这台设备区域上
    },
    {                           // 第二台设备
      "primary": false,            // 这台设备不是主设备
      "boundsRect": {
        "left": 1680,
        "top": 0,
        "right": 3360,
        "bottom": 1050
      },
      "workAreaRect": {
        "left": 1680,
        "top": 0,
        "right": 3360,
        "bottom": 1050
      },
      "current": true              // 当前窗口在这台设备区域上
    }
  ],
  "fullRect": {                 // 当前所有设备所构成的一个最大的矩形区域
    "top": 0,
    "left": 0,
    "bottom": 1050,
    "right": 3360
  },
  "windowRect": {               // 当前窗口相对于屏幕坐标的矩形区域
    "top": 223,
    "left": 1904,
    "bottom": 823,
    "right": 2704
  }
}

hex.manifest

返回一个对象,包含 manifest.json 内容。此对象可以被修改,但必须通过 hex.updateManifest() 方法将修改保存到文件中。

事件

beforeSystemCommand

  • command 整型 系统菜单项

在系统菜单命令被执行之触发。仅 manifest.jsonhook_system_commandtrue 时有效。

afterSystemCommand

  • command 整型 系统菜单项

在系统菜单命令被执行之触发。仅 manifest.jsonhook_system_commandtrue 时有效。

formMoving

在窗口位置及尺寸发生变化时触发。

formActivated

  • activated 布尔 窗口是否被激活

在窗口激活状态发生变化时触发。

exitMenu

在菜单关闭时触发。

instanceCreated(arguments)

  • arguments 布尔 参数列表

在 Single Instance 模式下新实例启动时触发。

formAeroChanged

  • aero 布尔 Aero 是否开启

在 Aero 状态改变时触发。仅在支持 Aero 的 Windows 下有效。

formMouseLeave

在鼠标移出窗口时触发。

formResized

  • command 整型 导致窗口状态改变的系统菜单项

在窗口状态发生变化是触发。

INPUT 元素的 hexcustom 属性

此属性为布尔值属性,仅作用于 type 为 file 的 INPUT 元素。设置后,hexsavefile、hexreserved、hexfiletypebuttonvalue、hexfiletypepathvalue 属性有效。

INPUT 元素的 hexsavefile 属性

此属性为布尔值属性,仅作用于 type 为 file 的 INPUT 元素。设置后,将弹出一个保存文件对话框。

INPUT 元素的 hexreserved 属性

此属性为布尔值属性,仅作用于 type 为 file 的 INPUT 元素。默认情况下,当文件选择对话框中点击取消后,之前选定的路径将被清除。此属性允许在取消选择文件时不清空上一次选择的路径。

INPUT 元素的 hexfiletypebuttonvalue 属性

此属性为字符串属性,仅作用于 type 为 file 的 INPUT 元素。默认情况下,文件选择控件上的按钮文本是不可以自定义的。此属性允许自定义文件选择按钮上的文本内容。

INPUT 元素的 hexfiletypepathvalue 属性

此属性为字符串属性,仅作用于 type 为 file 的 INPUT 元素。默认情况下,文件选择控件上仅显示选择的假路径或者文件个数。此属性可以返回及设置文件选择的路径信息。

HTMLInputElement 的 path 属性

此属性为字符串属性,仅作用于 type 为 file 的 INPUT 元素。可以返回文件选择的真实路径信息。

File 的 name 属性

此属性为字符串属性,默认情况下回 File 对象的 name 属性仅能返回文件名。目前此属性可以返回真实路径信息。