script

该模块是对 HotkeyNet 脚本中的代码块 (我们这里叫 Block) 的抽象. 从而提供了 “在 Python 中写 HotkeyNet” 脚本的能力.

class hotkeynet.script.Context[source]

一个全局单例的上下文对象. 自动管理 HotkeyNet 代码块的从属关系.

在该项目的早期版本中, 我们是用 类属性 来定义从属关系的. 如果代码块 SendLabel 属于 代码块 Hotkey, 那么我们就要用下面这样的语法来写, 非常的繁琐:

Hotkey(
    blocks = [
        SendLabel(
            to=["w1", "w2"],
            blocks = [
                Key("1"),
            ]
        ),
        SendLabel(
            to=["w3", "w4"],
            blocks = [
                Key("2"),
            ]
        ),
    ]
)

有了上下文机制, 我们可以用 Python 中的上下文管理器 with 语法来表达同样的逻辑, 减少了缩进, 对人类读代码更加友好, 并且整体代码量也大幅减少:

with Hotkey(...):
    with SendLabel(to=["w1", "w2"]):
        Key("1")
    with SendLabel(to=["w3", "w4"]):
        Key("2")

具体实现的原理如下

所有的 HotkeyNet 的代码块都是 Block 的子类, 它们都有一个 blocks 属性. 每当我们用

Parameters
  • stack – 储存当前的堆栈, 是一个后进先出的数据结构

  • auto_id_index – 用于自动给每个 Block 加 ID 的数据结构. 每一类 Block 例如 Command, Hotkey, SendLabel 都是从 1, 2, 3, … 开始自动加序号.

push(obj)[source]

将一个 Block 对象压入堆栈. 模拟进入 context manager 时候的行为.

pop()[source]

将一个 Block 对象从堆栈中弹出. 模拟退出 context manager 时候的行为.

property current: hotkeynet.script.Block

获取当前上下文中的最外层的 Block.

make_id(block_type: str = 'Block') str[source]

自动给代码块加 ID. 所有的代码块都有一个 ID, 如果在创建代码块的时候不显示的定义 ID, 则调用此函数自动生成. 详情请参考 Block.

class hotkeynet.script.Block(id: str = NOTHING, blocks: List[Block] = NOTHING)[source]

所有 HotkeyNet 代码块的基类.

Parameters
  • id – 全局唯一的代码块 ID.

  • blocks – 子 Block 的列表, 类似于 Tree 数据结构的叶子结点.

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

render(verbose=False) str[source]

将 Python 对象渲染成 HotkeyNet 中的代码块. 本实现对于大多数的 Block 都使用,

下面是对其不适用的 Block 的列表:

  • Script.render(): 因为它是整个脚本, 并不是 HotkeyNet 语法中的代码块.

class hotkeynet.script.Script(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

代表着整个 HotkeyNet 脚本.

property title: str

没有 title.

check_duplicate_command_name()[source]

确保没有重复定义的 Command 对象.

validate()[source]

检查 Script 的实现是否正确.

render(verbose: bool = False, no_empty_line: bool = True) str[source]

将 Python 对象渲染成 HotkeyNet 中的代码块. 本实现对于大多数的 Block 都使用,

下面是对其不适用的 Block 的列表:

  • Script.render(): 因为它是整个脚本, 并不是 HotkeyNet 语法中的代码块.

class hotkeynet.script.SendModeEnum(value)[source]

An enumeration.

class hotkeynet.script.Label(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, window: Optional[str] = None, ip: str = 'local', send_mode: str = 'SendWinM')[source]

用来给软件窗口加别名, 以便在 Command 获 Hotkey 中调用.

Example:

<Label name ip send_mode window>

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果标签没有名字, 那么就视为冗余, 应该删除.

class hotkeynet.script.Command(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None)[source]

代表着一个命令. 在 HotkeyNet 中相当于编程语言中的函数的概念.

Example:

<Command name>
    ...

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果一个命令没有具体的效果, 那么就视为冗余, 应该删除.

call(args: Optional[List[str]] = None) hotkeynet.script.CallCommand[source]

调用这个方法, 生成一个 CallCommand 对象. 也就是在 HotkeyNet 中 调用 Command 的代码块.

class hotkeynet.script.CommandArgEnum[source]

注意, 这不是一个真正的 enum.Enum. 但是为了兼容性考虑, 我们就不改这个类的名字了.

class hotkeynet.script.CallCommand(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, cmd: Optional[Union[str, hotkeynet.script.Command]] = None, args: List[str] = NOTHING)[source]

代表着在 HotkeyNet 中调用 Command 的代码块.

Example:

<cmd_name arg1 arg2 ...>

Reference:

property cmd_name: str

获取命令的名字.

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.SendPC(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, ip: Optional[str] = 'local')[source]

将命令获 Hotkey 发送到本机或是网络上的另一台电脑上.

Example:

<SendPC ip>
    ...

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果 IP 地址为给定, 则为冗余, 应该删除.

class hotkeynet.script.Run(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, path: Optional[str] = None)[source]

运行一个 Windows 程序.

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果路径没给定, 那么也就没有具体的效果, 应该删除.

class hotkeynet.script.Hotkey(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, key: Optional[str] = None)[source]

代表着一个快捷键的具体效果. 也是 HotkeyNet 中最关键, 最常用的代码块.

Example:

<Hotkey 1>
    ...

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果快捷键没有给定, 或是没有定义快捷键的效果, 那么就视为冗余, 应该删除.

property ref: str

用于在其他地方引用这个快捷键的名字. 通常是被 SetButtonHotkey 所引用.

class hotkeynet.script.MovementHotkey(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, key: Optional[str] = None)[source]

代表着一个用于保持按下状态的快捷键的具体效果. 常用于游戏中的人物移动.

Example:

<MovementHotkey Up>
    ...

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果快捷键没有给定, 或是没有定义快捷键的效果, 那么就视为冗余, 应该删除.

class hotkeynet.script.Key(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, key: Optional[str] = None)[source]

代表单个键盘按键的效果.

Example:

<Key 1>

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果按键未被定义, 那么就视为冗余, 应该删除.

class hotkeynet.script.KeyUp(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, key: Optional[str] = None)[source]

代表松开键盘按键的效果. 常用于模拟组合按键, 例如 Ctrl + C.

Example:

<KeyDown Ctrl>
<Key C>
<KeyUp Ctrl>

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果按键未被定义, 那么就视为冗余, 应该删除.

class hotkeynet.script.KeyDown(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, key: Optional[str] = None)[source]

代表按下键盘按键的效果. 常用于模拟组合按键, 例如 Ctrl + C.

Example:

<KeyDown Ctrl>
<Key C>
<KeyUp Ctrl>

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果按键未被定义, 那么就视为冗余, 应该删除.

class hotkeynet.script.SendLabel(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, to: List[str] = NOTHING)[source]

将一堆按键发送到指定的窗口.

Example:

<SendLabel w1>
    ...

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.MouseButtonEnum(value)[source]

An enumeration.

class hotkeynet.script.MouseStrokeEnum(value)[source]

An enumeration.

class hotkeynet.script.MouseTargetEnum(value)[source]

An enumeration.

class hotkeynet.script.MouseModeEnum(value)[source]

An enumeration.

class hotkeynet.script.ClickMouse(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, button: Optional[str] = None, stroke: str = '', target: str = '', mode: str = '', restore: str = '')[source]

Click Mouse.

Example:

<ClickMouse button stroke target mode restore>

Reference:

property title

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.MoveMouse(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, x: Optional[int] = None, y: Optional[int] = None, target: Optional[str] = None)[source]

将鼠标移动到窗口中的指定位置.

Example:

<MoveMouse x y>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.RenameWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, old: Optional[str] = None, new: Optional[str] = None)[source]

重名窗口.

Example:

<RenameWin old new>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

如果新旧窗口名有一个没有定义, 则视为冗余, 应该删除.

class hotkeynet.script.TargetWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.Wait(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, milli: Optional[int] = None)[source]

Example:

<wait milliseconds>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.WaitForWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None, timeout: Optional[int] = None)[source]

等待一个窗口被完全打开.

Example:

<WaitForWin window timeout>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.WaitForWinEnabled(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, timeout: Optional[int] = None)[source]

等待当前窗口被完全打开.

Example:

<WaitForWinEnabled timeout>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SetForegroundWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.SetActiveWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.Toggle(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

用 Round robin 的方式, 让你在按下同一个 Hotkey 的时候, 自动改变行为.

Example:

<Hotkey F1>
   <Toggle>
      <Key 1>
   <Toggle>
      <Key 2>
   <Toggle>
      <Key 3>

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.ToggleHotkeys(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.ToggleWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, windows: List[str] = NOTHING)[source]

用 Round robin 的方式, 让你在按下同一个 Hotkey 的时候, 自动切换到队列中的下一个窗口.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

将按键动作发送到指定窗口. 它会自动将该窗口设为当前活动窗口.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendWinM(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

将按键动作发送到指定后台窗口. 该窗口可以是后台窗口.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendWinMF(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendWinS(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendWinSF(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, window: Optional[str] = None)[source]

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SendFocusWin(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING)[source]

将按键动作发送到当前活动窗口.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.SetWinPos(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, x: Optional[int] = None, y: Optional[int] = None)[source]

设置窗口在桌面的位置..

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SetWinSize(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, x: Optional[int] = None, y: Optional[int] = None)[source]

设置窗口大小.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SetWinRect(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, x: Optional[int] = None, y: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None)[source]

设置窗口的位置以及大小.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.Text(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, text: Optional[str] = None)[source]

用键盘输入文本.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.CreatePanel(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, x: Optional[int] = None, y: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None)[source]

创建一个 Panel 按钮面板 widget.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.CreateButton(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, x: Optional[int] = None, y: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None, text: Optional[str] = None)[source]

创建 Panel 按钮面板上的按钮.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.CreatePictureButton(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, x: Optional[int] = None, y: Optional[int] = None, file: Optional[str] = None, text: Optional[str] = None)[source]

创建 Panel 按钮面板上的带图标的按钮.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.CreateColoredButton(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, name: Optional[str] = None, x: Optional[int] = None, y: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None, bkcolor: Optional[str] = None, textcolor: Optional[str] = None, text: Optional[str] = None)[source]

创建 Panel 按钮面板上的色块的按钮.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.AddButtonToPanel(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, button: Optional[str] = None, panel: Optional[str] = None, x: Optional[int] = 0, y: Optional[int] = 0, width: Optional[int] = None, height: Optional[int] = None)[source]

将按钮添加到 Panel 按钮面板中.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SetButtonHotkey(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, button: Optional[str] = None, hotkey: Optional[hotkeynet.script.Hotkey] = None)[source]

将按钮和 Hotkey 绑定.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.SetButtonCommand(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, button: Optional[str] = None, command: Optional[hotkeynet.script.Command] = None, args: Optional[tuple] = None)[source]

将按钮和 Command 绑定.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

class hotkeynet.script.AlwaysOnTop(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, on: bool = True)[source]

将当前窗口设为桌面最上端的窗口

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

class hotkeynet.script.SetPanelLayout(id: str = NOTHING, blocks: List[hotkeynet.script.Block] = NOTHING, panel: Optional[str] = None, row_length: Optional[int] = None, margin: Optional[int] = None, button_width: Optional[int] = None, button_height: Optional[int] = None)[source]

设置 Panel 按钮面板的布局.

Reference:

property title: str

HotkeyNet 代码块是类似与 HTML tag 的标签, 只不过它不会 close. Title 就是每个代码块 的第一行标签. 例如 <Hotkey ...>.

is_null() bool[source]

用于判断该代码块是否为空. 对于不同的代码块, 有不同的判空逻辑. 简单来说, 如果一个代码块 是空的, 没有内容, 那么它就属于冗余, 不应该在 HotkeyNet 脚本中存在. 而之所以会产生 空代码块是因为比如你写一些按下快捷键的 Action 的时候, 会触发几个按键, 但有的时候你 不想触发它们, 但你又不得不在代码中定义它, 这时候就可以用 is_null() 做条件判断, 自动 删除冗余的按键. 例如:

hotkeynet.script.render(obj: Union[hotkeynet.script.Block, str], verbose: bool = False) str[source]

A global function that take any object as argument and render it.