mieki256's diary



2022/08/17(水) [n年前の日記]

#2 [ruby][windows] Rubyスクリプトでウインドウサイズを取得したい

Windows10 x64 21H2 + Ruby 1.8.7 p330 i386-mswin32 で、Windows上のウインドウのサイズを取得したい。

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

以上です。

過去ログ表示

Prev - 2022/08 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project