本人新手,求助各位大神,ruby 怎么激活已打开的窗口,并在窗口内操作(获取元素并做相关操作等)
尝试过 win32api,但是都不成功,求正确方法
getdw = Win32API.new 'user32', 'GetActiveWindow', ['P', 'P'], 'L'
handle = getdw.call nil, 'Chrome_RenderWidgetHostHWND'
puts handle
出来的结果是“0”
或者是否有其他方法?
ruby 不擅长桌面,可以试试 electron
我觉得你应该要用的是 GetForegroundWindow,参照 http://stackoverflow.com/questions/10740143/get-current-active-window-title-in-c GetActiveWindow 只能 get 你自己进程里的。
另外 win32api 和 dl 已经 deprecate,建议使用 fiddle 或 ffi:
require 'fiddle' require 'fiddle/import' require 'fiddle/types' module User32 extend Fiddle::Importer dlload 'user32' include Fiddle::Win32Types extern 'HWND GetForegroundWindow()' extern 'int GetWindowText(HWND, char*, int)' end title = "\0" * 255 hwnd = User32.GetForegroundWindow length = User32.GetWindowText(hwnd, title, 255) p title[0...length]