class Fzeet::Windows::OSVERSIONINFOEX

Public Instance Methods

<=>(version) click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 28
def <=>(version)
        hex <=> case version
        when '2000', 2000; 0x0500
        when 'xp', :xp; 0x0501
        when 'vista', :vista; 0x0600
        when '7', 7; 0x0601
        else raise ArgumentError
        end
end
build() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 23
def build; self[:dwBuildNumber] end
get!() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 19
def get!; tap { |ovi| ovi[:dwOSVersionInfoSize] = size; Windows.DetonateLastError(0, :GetVersionEx, ovi) } end
hex() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 26
def hex; (major << 8) + minor end
major() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 21
def major; self[:dwMajorVersion] end
minor() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 22
def minor; self[:dwMinorVersion] end
name() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 40
def name
        case hex
        when 0x0500...0x0501; 'Windows 2000'
        when 0x0501...0x0600; 'Windows XP'
        when 0x0600...0x0601; 'Windows Vista'
        when 0x0601...0x0700; 'Windows 7'
        else 'Unknown'
        end
end
sp() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 24
def sp; self[:wServicePackMajor] end
to_s() click to toggle source
# File lib/fzeet/windows/core/Version.rb, line 50
def to_s; "#{major}.#{minor}.#{build} SP#{sp} (#{name})" end