2022/08/17(水) [n年前の日記]
#2 [ruby][windows] Rubyスクリプトでウインドウサイズを取得したい
Windows10 x64 21H2 + Ruby 1.8.7 p330 i386-mswin32 で、Windows上のウインドウのサイズを取得したい。
win32api を利用して試してみた。
_06_getwindowrect_win32api.rb
ruby 06_getwindowrect_win32api.rb ウインドウハンドル、で実行できる。ウインドウハンドルは10進数で記述。
win32api を利用して試してみた。
_06_getwindowrect_win32api.rb
require "Win32API"
if ARGV.size != 1
fn = File.basename(__FILE__)
puts "Usage:\n ruby #{fn} WINDOWHANDLE"
exit
end
hwnd = ARGV[0].to_i
puts "Window Handle = #{hwnd}"
get_window_rect = Win32API.new("user32", "GetWindowRect", "lp", "i")
buf = "\0" * 256
get_window_rect.call(hwnd, buf)
x0, y0, x1, y1 = buf.unpack("l4")
w = x1 - x0
h = y1 - y0
puts "(x0, y0) = (#{x0}, #{y0})"
puts "(x1, y1) = (#{x1}, #{y1})"
puts "(w, h) = #{w}, #{h}"
ruby 06_getwindowrect_win32api.rb ウインドウハンドル、で実行できる。ウインドウハンドルは10進数で記述。
◎ ウインドウハンドルを調べるツールについて。 :
ウインドウハンドルを調べる作業は、以下のツールを使わせてもらった。
_WinExplorer v1.30
Windows10 x64 21H2上で、WinExplorer 1.30 を利用できた。
あるいは、Spy++ を利用することもできそう。Visual Studio 2019 と一緒に入ってる場合もあるらしい。
_spy++を使ってクラス名を調べる方法 | 自動マクロプログラミング
_【Visual Studio 2019】Spy++の場所 - buralog
_WinExplorer v1.30
Windows10 x64 21H2上で、WinExplorer 1.30 を利用できた。
あるいは、Spy++ を利用することもできそう。Visual Studio 2019 と一緒に入ってる場合もあるらしい。
_spy++を使ってクラス名を調べる方法 | 自動マクロプログラミング
_【Visual Studio 2019】Spy++の場所 - buralog
[ ツッコむ ]
以上です。