module Process
def get_module_info(handle)
def get_module_info(handle) hash = Hash.new { |h, k| h[k] = [] } me = MODULEENTRY32.new me[:dwSize] = me.size if Module32First(handle, me) hash[me[:th32ProcessID]] << ModuleSnapInfo.new( me[:th32ProcessID], me[:modBaseAddr].to_i, me[:modBaseSize], me[:hModule], me[:szModule].to_s, me[:szExePath].to_s ) else if FFI.errno == ERROR_NO_MORE_FILES return hash else raise SystemCallError.new("Module32First", FFI.errno) end end while Module32Next(handle, me) hash[me[:th32ProcessID]] << ModuleSnapInfo.new( me[:th32ProcessID], me[:modBaseAddr].to_i, me[:modBaseSize], me[:hModule], me[:szModule].to_s, me[:szExePath].to_s ) end hash end