OLA 文档中心OLA 文档中心
OLA插件文档
OLA授权中心文档
OLA支付中心文档
OLA插件文档
OLA授权中心文档
OLA支付中心文档
  • 欧拉插件
  • 窗口

    • 绑定窗口 - BindWindow
    • 绑定窗口高级 - BindWindowEx
    • 解绑窗口 - UnBindWindow
    • 强制卸载DLL - ReleaseWindowsDll
    • 查看绑定窗口 - GetBindWindow
    • 查找窗口 - FindWindow
    • 拓展找窗口 - FindWindowEx
    • 通过进程找窗口 - FindWindowByProcess
    • 通过进程找窗口 - FindWindowByProcessId
    • 获取窗口 - GetWindow
    • 获取焦点窗口 - GetForegroundFocus
    • 获取坐标所在窗口句柄 - GetPointWindow
    • 获取顶层窗口句柄 - GetForegroundWindow
    • 获取鼠标所在窗口句柄 - GetMousePointWindow
    • 获取特殊窗口 - GetSpecialWindow
    • 枚举进程 - EnumProcess
    • 枚举窗口 - EnumWindow
    • 枚举进程窗口 - EnumWindowByProcessId
    • 枚举进程窗口 - EnumWindowByProcess
    • 枚举特殊窗口 - EnumWindowSuper
    • 查找特殊窗口 - FindWindowSuper
    • 获取线程ID - GetWindowThreadId
    • 获取进程ID - GetWindowProcessId
    • 移动窗口 - MoveWindow
    • 窗口坐标转屏幕坐标 - ClientToScreen
    • 屏幕坐标转窗口坐标 - ScreenToClient
    • 获取绑定窗口缩放比例 - GetScaleFromWindows
    • 获取窗口DPI感知比例 - GetWindowDpiAwarenessScale
    • 获取客户区大小 - GetClientSize
    • 获取窗口标题 - GetWindowTitle
    • 获取窗口类名 - GetWindowClass
    • 获取窗口区域 - GetWindowRect
    • 获取窗口所在路径 - GetWindowProcessPath
    • 获取窗口状态 - GetWindowState
    • 获取客户区域 - GetClientRect
    • 设置窗口标题 - SetWindowText
    • 设置窗口大小 - SetWindowSize
    • 设置窗口状态 - SetWindowState
    • 设置剪贴板 - SetClipboard
    • 设置客户区大小 - SetClientSize
    • 设置透明度 - SetWindowTransparent
    • 获取进程详细信息 - GetProcessInfo
    • 发送剪贴板内容 - SendPaste
    • 获取剪贴板内容 - GetClipboard
    • 发送字符串 - SendString
  • 鼠标

    • 范围鼠标移动 - MoveToEx
    • 获取鼠标特征码 - GetCursorShape
    • 获取鼠标图标 - GetCursorImage
    • 获取鼠标位置 - GetCursorPos
    • 相对移动 - MoveR
    • 移动 - MoveTo
    • 直接移动 - MoveToWithoutSimulator
    • 左键按下 - LeftDown
    • 左键弹起 - LeftUp
    • 左键点击 - LeftClick
    • 左键双击 - LeftDoubleClick
    • 右键按下 - RightDown
    • 右键弹起 - RightUp
    • 右键点击 - RightClick
    • 中键按下 - MiddleDown
    • 中键弹起 - MiddleUp
    • 中键点击 - MiddleClick
    • 中键上滚 - WheelUp
    • 中键下滚 - WheelDown
    • 生成鼠标移动轨迹 - GenerateMouseTrajectory
    • 设置系统鼠标精度 - EnableMouseAccuracy
  • 键盘

    • 按键 - KeyPress
    • 按键char - KeyPressChar
    • 按键str - KeyPressStr
    • 等待按键 - WaitKey
    • 键盘按住 - KeyDown
    • 键盘按住char - KeyDownChar
    • 键盘弹起 - KeyUp
    • 键盘弹起char - KeyUpChar
  • 图像处理

    • 截图并保存成文件 - Capture
    • 截图GIF - CaptureGif
    • 截图返回字节流 - GetScreenDataBmp
    • 截图返回字节流 - GetScreenData
    • 获取指定区域图象 - GetScreenDataPtr
    • 加载图片 - LoadImage
    • 加载图片 - LoadImageFromRGBData
    • 载入bmp图片 - LoadImageFromBmpData
    • 加载文件夹下的所有图片 - LoadImagePath(已弃用)
    • 保存图片 - SaveImageFromPtr
    • 拷贝图片 - CopyImage
    • 读取图片字节流 - GetImageData
    • 读取图片BMP字节流 - GetImageBmpData
    • 释放指定图片路径内存 - FreeImagePath
    • 释放所有内存 - FreeImageAll
    • 释放指定图片内存 - FreeImagePtr
    • 释放指定图片内存1 - FreeImageData
    • 裁剪图片 - Cropped
    • 获取图片大小 - GetImageSize
    • 调整图片大小 - ReSize
    • 调整图片大小 - ScalePixels
    • 弹窗显示图片 - ShowImage
    • 获取指定区域刷新率 - GetWindowsFps
    • 指定区域数据是否卡屏 - IsDisplayDead
    • 取色 - GetColor
    • 获取像素颜色 - GetColorPtr
    • RGB颜色转为16进制格式 - ARGB2Hex
    • RGB颜色转为16进制格式 - RGB2Hex
    • 16进制格式颜色转为ARGB - Hex2ARGB
    • 16进制格式颜色转为RGB - Hex2RGB
    • 对比颜色 - CmpColor
    • 对比颜色 - CmpColorPtr
    • 对比颜色 - CmpColorHex
    • 查找符合的颜色 - FindColor
    • 查找所有符合的颜色 - FindColorList
    • 查找指定颜色范围坐标 - FindMultiColor
    • 查找指定颜色范围坐标 - FindMultiColorFromPtr
    • 查找指定颜色范围坐标 - FindMultiColorList
    • 查找指定颜色范围坐标 - FindMultiColorListFromPtr
    • 查找指定区域内的颜色块 - FindColorBlock
    • 查找指定区域内的颜色块 - FindColorBlockPtr
    • 查找指定区域内的所有颜色块 - FindColorBlockList
    • 查找指定区域内的所有颜色块 - FindColorBlockListPtr
    • 设置指定颜色为新的颜色 - SetColorsToNewColor
    • 移除除指定颜色外的所有颜色 - RemoveOtherColors
    • 获取二值化图像 - GetThresholdImageFromMultiColorPtr
    • 获取指定区域二值化图像 -GetThresholdImageFromMultiColor
    • 获取指定颜色数量 - GetColorNum
    • 获取指定颜色数量 - GetColorNumPtr
    • 移除图片差异部分 - RemoveImageDiff
    • 生成二维码 - CreateQRCode
    • 解析二维码 - DecodeQRCode
    • 创建图片 - CreateImage
    • 设置图片指定坐标的颜色 - SetPixel
    • 设置图片指定坐标集的颜色 - SetPixelList
    • 拼接图片 - ConcatImage
    • 图片转为base64字符串 - ImageToBase64
    • base64字符串转为图片 - Base64ToImage
    • 旋转图片 - RotateImage
    • 覆盖图片 - CoverImage
    • 绘制圆形 - DrawCircle
    • 绘制矩形 - DrawRectangle
    • 绘制多边形 - DrawFillPoly
    • 坐标点排序 - SortPosDistance
    • 识别图片排除指定区域 - ExcludePos
    • 查找最近坐标点 - FindNearestPos
  • 图像识别

    • 匹配绑定窗口图片 - MatchWindowsFromPathAll
    • 匹配绑定窗口图片1 - MatchWindowsFromPtr
    • 匹配绑定窗口图片2 - MatchWindowsFromPtrAll
    • 匹配绑定窗口图片3 - MatchWindowsFromPath
    • 匹配绑定窗口图片4 - MatchWindowsThresholdFromPtr
    • 匹配绑定窗口图片5 - MatchWindowsThresholdFromPtrAll
    • 匹配绑定窗口图片6 - MatchWindowsThresholdFromPath
    • 匹配绑定窗口图片7 - MatchWindowsThresholdFromPathAll
    • 匹配图片 - MatchImageFromPathAll
    • 匹配图片1 - MatchImageFromPath
    • 匹配图片2 - MatchImageFromPtrAll
    • 匹配图片3 - MatchImageFromPtr
    • 匹配图片4 - MatchImagePtrFromPath
    • 匹配图片5 - MatchImagePtrFromPathAll
    • 匹配动画窗口 - MatchAnimationFromPath
    • 匹配动画窗口1 - MatchAnimationFromPtr
    • 图片比较-结构相似性指数 - CalculateSSIM
    • 图片比较-完整比较 - IsSameImage
    • 图片比较-直方图比较 - CalculateHistograms
    • 图片比较-均方误差 - CalculateMSE
    • 是否显示匹配结果弹窗 - ShowMatchWindow
  • 文字识别

    • 指定区域识字 - Ocr
    • 指定bmp图片识字 - OcrFromBmpData
    • 指定区域详细信息- OcrDetails
    • 指定图片识字 - OcrFromPtr
    • 指定bmp图片详细信息 - OcrFromBmpDataDetails
    • 指定图片详细信息 - OcrFromPtrDetails
  • 数据库

    • 打开数据库 - OpenDatabase
    • 读取错误信息 - GetDatabaseError
    • 关闭数据库 - CloseDatabase
    • 读取所有表名 - GetAllTableNames
    • 读取表结构信息 - GetTableInfo
    • 读取表结构详细信息 - GetTableInfoDetail
    • 执行SQL - ExecuteSql
    • 执行快速查询 - ExecuteScalar
    • 执行查询 - ExecuteReader
    • 读取游标 - Read
    • 读取查询结果的数量 - GetDataCount
    • 读取列数量 - GetColumnCount
    • 读取列名称 - GetColumnName
    • 读取列索引 - GetColumnIndex
    • 读取列类型 - GetColumnType
    • 销毁STMT对象 - Finalize
    • 读取double数据 - GetDouble
    • 读取int32数据 - GetInt32
    • 读取int64数据 - GetInt64
    • 读取string数据 - GetString
    • 读取double数据 - GetDoubleByColumnName
    • 读取int数据 - GetInt32ByColumnName
    • 读取long数据 - GetInt64ByColumnName
    • 读取string数据 - GetStringByColumnName
  • 图像数据库

    • 加载字库图片 - InitDictFromDir
    • 添加字库数据 - ImportDictWord
    • 导出字库数据 - ExportDict
    • 移除字库 - RemoveDict
    • 移除词典词条 - RemoveDictWord
    • 读取字库图片 - GetDictImage
    • 查找文字 - FindStr
    • 初始化OLA数据库 - InitOlaDatabase
    • 从目录初始化OLA图像 - InitOlaImageFromDir
    • 从目录移除OLA图像 - RemoveOlaImageFromDir
    • 导出OLA图像到目录 - ExportOlaImageDir
    • 导入OLA图像 - ImportOlaImage
    • 获取OLA图像 - GetOlaImage
    • 移除OLA图像 - RemoveOlaImage
  • Config相关

    • 读取数据库配置项 - GetDbConfig
    • 设置数据库配置 - SetDbConfig
    • 移除数据库配置项 - RemoveDbConfig
    • 读取数据库配置项 - GetDbConfigEx
    • 设置数据库配置 - SetDbConfigEx
    • 移除数据库配置项 - RemoveDbConfigEx
  • 高级版功能

    • AI

      • YOLO
    • 防护盾

  • 快捷键

    • 启动快捷键监听 - StartHotkeyHook
    • 停止快捷键监听 - StopHotkeyHook
    • 注册键盘快捷键 - RegisterHotkey
    • 卸载键盘快捷键 - UnregisterHotkey
    • 注册鼠标点击快捷键 - RegisterMouseButton
    • 卸载鼠标点击快捷键 - UnregisterMouseButton
    • 注册鼠标滚轮快捷键 - RegisterMouseWheel
    • 卸载鼠标滚轮快捷键 - UnregisterMouseWheel
    • 注册鼠标移动快捷键 - RegisterMouseMove
    • 卸载鼠标移动快捷键 - UnregisterMouseMove
    • 注册鼠标拖动快捷键 - RegisterMouseDrag
    • 卸载鼠标拖动快捷键 - UnregisterMouseDrag
  • 设置

    • 版本 - Ver
    • 获取插件路径 - GetBasePath
    • 获取机器码 - GetMachineCode
    • 获取全局路径 - GetPath
    • 设置全局路径 - SetPath
    • 读取用户自定义设置 - GetConfig
    • 修改用户自定义设置 - SetConfig
    • 修改用户自定义设置 - SetConfigByKey
  • 其他

    • 注册到后台 - Reg
    • 创建OLA对象
    • 释放OLA对象 - DestroyCOLAPlugInterFace
    • 释放字符串内存 - FreeStringPtr
    • 读取字符串大小 - GetStringSize
    • 从内存地址读取字符串 - GetStringFromPtr
    • 执行cmd指令 - ExecuteCmd
  • 系统

    • 控制窗口任务栏图标 - ShowTaskBarIcon
    • 检测UAC状态 - CheckUAC
    • 设置UAC状态 - SetUAC
    • 运行指定程序 - RunApp
    • 延时指定毫秒 - Delay
    • 延时指定随机时间 - Delays
    • 拖动文件到窗口 - SendDropFiles

通过进程找窗口 - FindWindowByProcess

函数简介

根据进程名称、窗口类名和标题查找可见窗口。此函数提供了一种灵活的方式来定位特定进程的窗口。

接口名称

FindWindowByProcess

DLL调用

long FindWindowByProcess(long ola, string process_name, string class, string title)

参数定义:

  • ola (长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
  • process_name (字符串): 进程名称(如"notepad.exe"),精确匹配但不区分大小写。
  • class (字符串): 窗口类名,支持模糊匹配。如果为空字符串(""),则匹配所有类名。
  • title (字符串): 窗口标题,支持模糊匹配。如果为空字符串(""),则匹配所有标题。

示例:

// 查找记事本进程的主窗口
long hwnd = FindWindowByProcess(ola, "notepad.exe", "", "记事本");
if (hwnd != 0) {
    printf("Found Notepad window: %ld\n", hwnd);
    
    // 验证找到的窗口
    if (GetWindowState(ola, hwnd, 2) == 1) {  // 检查是否可见
        printf("Window is visible\n");
        
        // 获取完整的窗口标题
        char title[256];
        GetWindowText(hwnd, title, sizeof(title));
        printf("Full window title: %s\n", title);
    }
} else {
    printf("Notepad window not found\n");
}

// 查找Chrome浏览器的特定窗口
hwnd = FindWindowByProcess(ola, "chrome.exe", "Chrome_WidgetWin_1", "Google");
if (hwnd != 0) {
    printf("Found Chrome window: %ld\n", hwnd);
    
    // 检查窗口状态
    if (GetWindowState(ola, hwnd, 1) == 1) {  // 检查是否激活
        printf("Chrome window is active\n");
    } else {
        printf("Chrome window is not active\n");
    }
} else {
    printf("Chrome window not found\n");
}

// 查找所有记事本窗口
long hwndArray[10];  // 假设最多存储10个窗口句柄
int count = 0;
hwnd = FindWindowByProcess(ola, "notepad.exe", "", "");
while (hwnd != 0 && count < 10) {
    hwndArray[count++] = hwnd;
    printf("Found Notepad window %d: %ld\n", count, hwnd);
    
    // 继续查找下一个窗口
    hwnd = FindWindowByProcess(ola, "notepad.exe", "", "");
}
printf("Total Notepad windows found: %d\n", count);

COM调用

long FindWindowByProcess(string process_name, string class, string title)

参数定义:

  • process_name (字符串): 进程名称(如"notepad.exe"),精确匹配但不区分大小写。
  • class (字符串): 窗口类名,支持模糊匹配。如果为空字符串(""),则匹配所有类名。
  • title (字符串): 窗口标题,支持模糊匹配。如果为空字符串(""),则匹配所有标题。

示例:

# 查找记事本进程的主窗口
hwnd = ola.FindWindowByProcess("notepad.exe", "", "记事本")
if hwnd != 0:
    print(f"Found Notepad window: {hwnd}")
    
    # 验证窗口状态
    if ola.GetWindowState(hwnd, 2) == 1:  # 检查是否可见
        print("Window is visible")
        
        # 激活并最大化窗口
        ola.SetWindowState(hwnd, 1)  # 激活
        ola.SetWindowState(hwnd, 4)  # 最大化
else:
    print("Notepad window not found")

# 查找Chrome浏览器的所有窗口
def find_all_chrome_windows():
    windows = []
    hwnd = ola.FindWindowByProcess("chrome.exe", "Chrome_WidgetWin_1", "")
    while hwnd != 0:
        windows.append(hwnd)
        print(f"Found Chrome window: {hwnd}")
        
        # 获取窗口状态信息
        is_visible = ola.GetWindowState(hwnd, 2)
        is_active = ola.GetWindowState(hwnd, 1)
        print(f"Window {hwnd} - Visible: {is_visible}, Active: {is_active}")
        
        # 继续查找下一个窗口
        hwnd = ola.FindWindowByProcess("chrome.exe", "Chrome_WidgetWin_1", "")
    
    return windows

chrome_windows = find_all_chrome_windows()
print(f"Total Chrome windows found: {len(chrome_windows)}")

# 查找特定标题的应用程序窗口
def find_window_by_title_pattern(process_name, title_pattern):
    hwnd = ola.FindWindowByProcess(process_name, "", title_pattern)
    if hwnd != 0:
        print(f"Found window for {process_name} with title containing '{title_pattern}'")
        return hwnd
    else:
        print(f"No window found for {process_name} with title containing '{title_pattern}'")
        return 0

# 示例:查找标题包含"设置"的应用程序窗口
settings_hwnd = find_window_by_title_pattern("SystemSettings.exe", "设置")

返回值

长整型数:

  • 非零值: 返回找到的窗口句柄
  • 0: 未找到匹配的窗口

注意事项

  1. 进程名称必须包含扩展名(如".exe"),且不区分大小写
  2. 类名和标题支持模糊匹配,可以只包含部分文本
  3. 空字符串参数会匹配任意值,可用于通配搜索
  4. 如果有多个匹配的窗口,函数返回第一个找到的窗口
  5. 建议使用更具体的搜索条件以提高查找准确性
  6. 某些系统进程的窗口可能无法被找到
  7. 进程必须具有可见的主窗口才能被找到
  8. 可以结合 GetWindowState 验证找到的窗口
Last Updated:
Prev
拓展找窗口 - FindWindowEx
Next
通过进程找窗口 - FindWindowByProcessId