窗口操作
ssf.Windows
模块提供了与 Windows 系统相关的界面操作功能,如枚举窗口、查找窗口、控制窗口 显示等。
ssf.Windows
顶级窗口信息
定义了顶级窗口的详细信息。
属性名 | 类型 | 描述 |
---|---|---|
pid | number | 进程 ID |
hwnd | number | 窗口句柄 |
path | string | EXE 路径 |
title | string | 窗口标题 |
class_name | string | 窗口类名 |
ssf.WindowRectInfo 接口
窗口矩形信息
定义了窗口的位置和大小信息。
属性名 | 类型 | 描述 |
---|---|---|
x | number | 左边距 |
y | number | 上边距 |
w | number | 宽度 |
h | number | 高度 |
ssf.RegModel 接口
注册表模型
定义了注册表项的详细信息。
属性名 | 类型 | 描述 |
---|---|---|
key | string | 注册表键 |
value | string | 注册表值 |
value_type | number | 注册表值类型 |
ssf.WindowInfo 接口
窗口信息
定义了窗口的基本信息。
属性名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
title | string | 窗口标题 |
class_name | string | 窗口类名 |
ssf.CmdInfo 接口
命令信息
定义了命令执行后的返回信息。
属性名 | 类型 | 描述 |
---|---|---|
result | string | 命令返回值 |
code | number | 返回代码 |
ssf.enums 模块
枚举类型
CmdShow 枚举
定义了窗口显示方式的枚举值。
枚举值 | 值 | 描述 |
---|---|---|
SW_HIDE | 0 | 隐藏窗口 |
SW_NORMAL | 1 | 正常大小和位置显示窗口 |
SW_SHOWMAXIMIZED | 2 | 最大化窗口 |
SW_MAXIMIZE | 3 | 最大化窗口,但不激活 |
SW_SHOWNOACTIVATE | 4 | 显示窗口,但不激活 |
SW_SHOW | 5 | 在当前位置和大小显示窗口 |
SW_MINIMIZE | 6 | 最小化窗口,并激活下一个顶层窗口 |
SW_SHOWMINNOACTIVE | 7 | 最小化窗口,但不激活 |
SW_SHOWNA | 8 | 显示窗口,不激活 |
SW_RESTORE | 9 | 恢复窗口的大小和位置,激活并显示窗口 |
SW_SHOWDEFAULT | 10 | 用默认的大小和位置显示窗口 |
SW_FORCEMINIMIZE | 11 | 最小化窗口,即使程序不响应 |
WndInsertAfter 枚举
定义了窗口插入位置的枚举值。
枚举值 | 值 | 描述 |
---|---|---|
HWND_BOTTOM | 1 | 窗口置于所有非顶层窗口的底部 |
HWND_NOTOPMOST | -2 | 窗口不置于顶层,即使禁用窗口 |
HWND_TOP | 0 | 窗口置于所有非顶层窗口的顶部 |
HWND_TOPMOST | -1 | 窗口置于所有窗口的顶部,即使禁用窗口 |
SetwindowposFlags 枚举
定义了设置窗口位置和大小的标志位。
枚举值 | 值 | 描述 |
---|---|---|
SWP_ASYNCWINDOWPOS | 16384 | 异步窗口位置调整 |
SWP_DEFERERASE | 8192 | 防止擦除窗口的内容 |
SWP_DRAWFRAME | 32 | 绘 制窗口的边框 |
SWP_HIDEWINDOW | 128 | 隐藏窗口 |
SWP_NOACTIVATE | 16 | 不激活窗口 |
SWP_NOCOPYBITS | 256 | 不复制客户区内容 |
SWP_NOMOVE | 2 | 不改变窗口的位置 |
SWP_NOOWNERZORDER | 512 | 不改变所有者窗口在 Z 顺序中的位置 |
SWP_NOREDRAW | 8 | 不重绘窗口 |
SWP_NOREPOSITION | 512 | 不重新定位窗口 |
SWP_NOSENDCHANGING | 1024 | 阻止窗口接收 WM_WINDOWPOSCHANGING 消息 |
SWP_NOSIZE | 1 | 不改变窗口的大小 |
SWP_NOZORDER | 4 | 不改变窗口 Z 顺序 |
SWP_SHOWWINDOW | 64 | 显示窗口 |
ssf.Windows 模块
enum_windows
方法
枚举所有窗口获得窗口名和类名。
ssf.Windows.enum_windows(): TopWindowsInfo[];
返回值
TopWindowsInfo[]
- 所有顶级窗口的信息列表。
示例
const topWindows = ssf.Windows.enum_windows();
console.log('所有顶级窗口信息:', topWindows);
find_window
方法
通过窗口标题或者类名查找窗口。
ssf.Windows.find_window(class_name?: string, title?: string): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
class_name | string | 窗口类名(可选) |
title | string | 窗口标题(可选) |
返回值
number
- 找到的窗口句柄,未找到返回 0。
示例
const hwnd = ssf.Windows.find_window('Notepad', '无标题 - 记事本');
console.log('找到的窗口句柄:', hwnd);
find_process
方法
查找进程是否存在,存在返回 PID,不存在返回 0。
ssf.Windows.find_process(name: string): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
name | string | 进程名 |
返回值
number
- 进程 ID,未找到返回 0。
示例
const pid = ssf.Windows.find_process('notepad.exe');
console.log('进程ID:', pid);
kill_process
方法
结束进程。
ssf.Windows.kill_process(pid: number): boolean;
参数
参数名 | 类型 | 描述 |
---|---|---|
pid | number | 进程 ID |
返回值
boolean
- 操作成功返回true
,失败返回false
。
示例
const success = ssf.Windows.kill_process(1234);
console.log('结束进程结果:', success);
find_process_with_hwnd
方法
根据窗口句柄获得进程。
ssf.Windows.find_process_with_hwnd(hwnd: number): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
number
- 进程 ID。
示例
const pid = ssf.Windows.find_process_with_hwnd(12345);
console.log('进程ID:', pid);
is_windows_visible
方法
判断指定窗体是否可见。
ssf.Windows.is_windows_visible(hwnd: number): boolean;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
boolean
- 窗口可见返回true
,不可见返回false
。
示例
const isVisible = ssf.Windows.is_windows_visible(12345);
console.log('窗口是否可见:', isVisible);
get_foreground_window
方法
获得当前激活的窗体。
ssf.Windows.get_foreground_window(): number;
返回值
number
- 当前激活窗口的句柄。
示例
const hwnd = ssf.Windows.get_foreground_window();
console.log('当前激活窗口句柄:', hwnd);
get_top_window
方法
获得顶部窗体。
ssf.Windows.get_top_window(hwnd: number): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 父窗口句柄 |
返回值
number
- 顶部窗口的句柄。
示例
const topHwnd = ssf.Windows.get_top_window(12345);
console.log('顶部窗口句柄:', topHwnd);
get_desktop_window
方法
获得桌面。
ssf.Windows.get_desktop_window(): number;
返回值
number
- 桌面窗口的句柄。
示例
const desktopHwnd = ssf.Windows.get_desktop_window();
console.log('桌面窗口句柄:', desktopHwnd);
get_current_thread_id
方法
获得当前进程。
ssf.Windows.get_current_thread_id(): number;
返回值
number
- 当前线程的 ID。
示例
const threadId = ssf.Windows.get_current_thread_id();
console.log('当前线程ID:', threadId);
set_foreground_window
方法
激活窗体。
ssf.Windows.set_foreground_window(hwnd: number): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
number
- 操作结果,通常为窗口句柄。
示例
const hwnd = ssf.Windows.set_foreground_window(12345);
console.log('激活窗口句柄:', hwnd);
show_window
方法
显示窗体。
ssf.Windows.show_window(hwnd: number, m_cmd_show: enums.CmdShow): boolean;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
m_cmd_show | enums.CmdShow | 显示方式 |
返回值
boolean
- 操作成功返回true
,失败返回false
。
示例
const success = ssf.Windows.show_window(12345, ssf.enums.CmdShow.SW_SHOW);
console.log('显示窗口结果:', success);
set_window_pos
方法
设置窗体的位置和大小。
ssf.Windows.set_window_pos(
hwnd: number,
x: number,
y: number,
w: number,
h: number,
hwndinsertafter: enums.WndInsertAfter,
flag: enums.SetwindowposFlags,
): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
x | number | X 坐标 |
y | number | Y 坐标 |
w | number | 宽度 |
h | number | 高度 |
hwndinsertafter | enums.WndInsertAfter | 插入位置 |
flag | enums.SetwindowposFlags | 标志位 |
返回值
number
- 操作结果,通常为窗口句柄。
示例
const hwnd = ssf.Windows.set_window_pos(12345, 100, 100, 800, 600, ssf.enums.WndInsertAfter.HWND_TOP, ssf.enums.SetwindowposFlags.SWP_SHOWWINDOW);
console.log('设置窗口位置和大小结果:', hwnd);
switch_to_this_window
方法
类似 Alt+Tab 键切换窗体。
ssf.Windows.switch_to_this_window(hwnd: number): void;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
示例
ssf.Windows.switch_to_this_window(12345);
set_focus
方法
设置窗体焦点。
ssf.Windows.set_focus(hwnd: number): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
number
- 操作结果,通常为窗口句柄。
示例
const hwnd = ssf.Windows.set_focus(12345);
console.log('设置焦点结果:', hwnd);
get_window_rect
方法
获得窗体的位置和大小。
ssf.Windows.get_window_rect(hwnd: number): WindowRectInfo;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
WindowRectInfo
- 窗口的位置和大小信息。
示例
const rect = ssf.Windows.get_window_rect(12345);
console.log('窗口位置和大小:', rect);
get_parent_window
方法
获得窗体的父窗体。
ssf.Windows.get_parent_window(hwnd: number): WindowInfo;
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 窗口句柄 |
返回值
WindowInfo
- 父窗口的信息。
示例
const parentWindow = ssf.Windows.get_parent_window(12345);
console.log('父窗口信息:', parentWindow);
enum_child_windows
方法
枚举窗体的子窗体。
ssf.Windows.enum_child_windows(hwnd: number): WindowInfo[];
参数
参数名 | 类型 | 描述 |
---|---|---|
hwnd | number | 父窗口句柄 |
返回值
WindowInfo[]
- 子窗口的信息列表。
示例
const childWindows = ssf.Windows.enum_child_windows(12345);
console.log('子窗口信息:', childWindows);
run
方法
运行程序。
ssf.Windows.run(path: string, args: string[]): number;
参数
参数名 | 类型 | 描述 |
---|---|---|
path | string | 程序路径 |
args | string[] | 参数列表 |
返回值
number
- 进程 ID。
示例
const pid = ssf.Windows.run('C:\\Program Files\\Notepad++\\notepad++.exe', []);
console.log('启动程序PID:', pid);
cmd
方法
执行命令并获得返回值。
ssf.Windows.cmd(path: string, args: string[]): CmdInfo;
参数
参数名 | 类型 | 描述 |
---|---|---|
path | string | 命令路径 |
args | string[] | 参数列表 |
返回值
CmdInfo
- 命令执行后的返回信息。
示例
const cmdResult = ssf.Windows.cmd('dir', ['/b']);
console.log('命令执行结果:', cmdResult);
get_reg_value_list
方法
获得注册表值列表。
ssf.Windows.get_reg_value_list(path: string): RegModel[];
参数
参数名 | 类型 | 描述 |
---|---|---|
path | string | 注册表路径 |
返回值
RegModel[]
- 注册表值列表。
示例
const regValues = ssf.Windows.get_reg_value_list('\\HKEY_CURRENT_USER\\Software\\Microsoft\\');
console.log('注册表值列表:', regValues);
get_reg_key_list
方法
获得注册表键列表。
ssf.Windows.get_reg_key_list(path: string): string[];
参数
参数名 | 类型 | 描述 |
---|---|---|
path | string | 注册表路径 |
返回值
string[]
- 注册表键列表。
示例
const regKeys = ssf.Windows.get_reg_key_list('\\HKEY_CURRENT_USER\\Software\\Microsoft\\');
console.log('注册表键列表:', regKeys);
get_reg_value
方法
获得注册表单个值。
ssf.Windows.get_reg_value(path: string, name: string): string;
参数
参数名 | 类型 | 描述 |
---|---|---|
path | string | 注册表路径 |
name | string | 注册表值名称 |
返回值
string
- 注册表值。
示例
const regValue = ssf.Windows.get_reg_value('\\HKEY_CURRENT_USER\\Software\\Microsoft\\Clipboard', 'ShellHotKeyUsed');
console.log('注册表值:', regValue);