linux 使用 win32ole,ruby使用win32ole和win32api

ruby提供的功能比较强大,能直接调用win32 api,还能使用OLE组建。

一、 win32 ole调用:

require "win32ole"

i = WIN32OLE.new('AutoItX3.Control') #使用AutoIt工具的OLE

puts i.ole_methods #打印出所有支持的方法

i.Run("calc.exe")

二。 win32 api调用:

由于涉及到一些结构体,自己使用二进制方法比较麻烦,可以使用已有的CStruct gem包来处理。

安装步骤和简单介绍见:http://www.w-yong.com/docs/ruby_win32_api.html

官方的一个事例:

require 'windows/memory'

require 'win32struct'

include Windows::Memory

# example:

# typedef struct _MEMORYSTATUS {

# DWORD dwLength;

# DWORD dwMemoryLoad;

# DWORD dwTotalPhys;

# DWORD dwAvailPhys;

# DWORD dwTotalPageFile;

# DWORD dwAvailPageFile;

# DWORD dwTotalVirtual;

# DWORD dwAvailVirtual;

# } MEMORYSTATUS, *LPMEMORYSTATUS;

class MEMORYSTATUS < Win32Struct

DWORD :dwLength

DWORD :dwMemoryLoad

DWORD :dwTotalPhys

DWORD :dwAvailPhys

DWORD :dwTotalPageFile

DWORD :dwAvailPageFile

DWORD :dwTotalVirtual

DWORD :dwAvailVirtual

end

# create a MEMORYSTATUS's instance

stat = MEMORYSTATUS.new {|st| st.dwLength = MEMORYSTATUS.size }

# call API "GlobalMemoryStatus" - See also MSDN

GlobalMemoryStatus(stat.data)

#output

printf "[Physical Memory]

"

printf " total:%12d bytes

",stat.dwTotalPhys

printf " free :%12d bytes

",stat.dwAvailPhys

printf "[Virtual Memory]

"

printf " total:%12d bytes

",stat.dwTotalVirtual

printf " free :%12d bytes

",stat.dwAvailVirtual

printf "[Paging File]

"

printf " total:%12d bytes

",stat.dwTotalPageFile

printf " free :%12d bytes

",stat.dwAvailPageFile

运行结果:

E:att_projRubyStudylib>ruby cstruct.rb

[Physical Memory]

total: 2147483647 bytes

free : 2126528512 bytes

[Virtual Memory]

total: 2147352576 bytes

free : 2082926592 bytes

[Paging File]

total: 4294967295 bytes

free : 4294967295 bytes

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值