gpt4 book ai didi

ruby - Win3 2's FindWindow() can find a particular window with the exact title, but what about "try.bat - 记事本”?

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:07 27 4
gpt4 key购买 nike

Win32的FindWindow()可以找到标题为“Untitled - Notepad”的窗口,但是如果我只想找到一个记事本窗口但不知道是不是“try. bat - 记事本”或标题栏上的其他文件名?

好像title传入一个NULL值,那么任何一个窗口都会返回,但是只返回一个窗口,所以没办法grep使用正则表达式获取title .

(我正在使用 Ruby 的 Win32API 执行此操作)

最佳答案

我会听从 Eric 的建议使用 EnumWindows。您可以通过 win32-api 为 Windows API 函数提供 Ruby 回调。这是一个从 win32-api README 中的示例中简单修改的​​示例:

require 'win32/api'
include Win32

# Callback example - Enumerate windows
EnumWindows = API.new('EnumWindows', 'KP', 'L', 'user32')
GetWindowText = API.new('GetWindowText', 'LPI', 'I', 'user32')
EnumWindowsProc = API::Callback.new('LP', 'I'){ |handle, param|
buf = "\0" * 200
GetWindowText.call(handle, buf, 200);

if (!buf.index(param).nil?)
puts "window was found: handle #{handle}"
0 # stop looking after we find it
else
1
end
}

EnumWindows.call(EnumWindowsProc, 'Firefox')

关于ruby - Win3 2's FindWindow() can find a particular window with the exact title, but what about "try.bat - 记事本”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com