harry’s memorandum

おれおれメモ

rubyでプロセスの優先度を普通に変更

前回のように特権でプロセスの優先度を変更するんじゃなくて、普通に優先度を変更する場合、rubyだとすごく簡単。

require 'win32ole'

#LOW, NORMAL,HIGH, REALTIME, ABOVENORMAL,BELOW_NORMAL
BELOW_NORMAL = 16384
strComputer = '.'

def usage
  puts "#{__FILE__} [pid]"; exit
end

usage unless ARGV.size == 1
pid = ARGV[0]

locator = WIN32OLE.connect("winmgmts://#{strComputer}/root/cimv2")
locator.ExecQuery(
   "Select * from Win32_Process Where ProcessId ='#{pid}'"
 ).each {|x|
  x.SetPriority(BELOW_NORMAL)
}

rubyでwin32oleは便利だ。