heX API 说明
heX 内置的所有方法及属性均挂载在 window 对象的 hex 对象下。事件可以通过监听 window 对象来响应。
列表
- 方法列表- restore()
- move()
- size()
- minimize()
- maximize()
- close()
- showSystemMenu(x, y)
- deleteSystemCommand(command)
- enableSystemCommand(command, enabled)
- insertSystemCommand(command, beforeCommand)
- setPopupFormSize(width, height)
- setPopupFormPosition(x, y)
- sizeTo(width, height)
- moveTo(x, y)
- focusForm()
- setAsTitleBarAreas(x, y)
- setAsNonBorderAreas(x, y)
- setAsSystemMenuIconAreas(x, y)
- getSize()
- getPosition()
- getWorkspaceRect()
- setFormIcon(path)
- terminate()
- cancelMode()
- getMaximizedAdjustedBorderWidth()
- snapshot(rect, callback)
- snapshotDesktop(rect, callback)
- getCursorScreenPosition()
- openTarget(command)
- openExternal(url)
- showTargetInFolder(path)
- updateManifest()
 
- 属性列表
- 事件列表
- Blink 的修改
方法
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.json 中 transparency 不为 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.json 中 hook_system_command 为 true 时有效。
afterSystemCommand
- command整型 系统菜单项
在系统菜单命令被执行之后触发。仅 manifest.json 中 hook_system_command 为 true 时有效。
formMoving
在窗口位置及尺寸发生变化时触发。
formActivated
- activated布尔 窗口是否被激活
在窗口激活状态发生变化时触发。
exitMenu
在菜单关闭时触发。
instanceCreated(arguments)
- arguments布尔 参数列表
在 Single Instance 模式下新实例启动时触发。
formAeroChanged
- aero布尔 Aero 是否开启
在 Aero 状态改变时触发。仅在支持 Aero 的 Windows 下有效。
formMouseLeave
在鼠标移出窗口时触发。
formResized
- command整型 导致窗口状态改变的系统菜单项
在窗口状态发生变化是触发。
Blink 的修改
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 属性仅能返回文件名。目前此属性可以返回真实路径信息。