Ruby win32api和win32ole有什么区别?

时间:2016-12-20 04:02:07

标签: ruby windows api winapi win32ole

使用win32ole

的一段ruby代码
require 'win32ole'
ie = WIN32OLE.new('InternetExplorer.Application')
ie.visible = true
ie.gohome

使用win32api

的一些代码
require "Win32API"
message = "This is a sample Windows message box generated using Win32API"
title = "Win32API from Ruby"
api = Win32API.new('user32', 'MessageBox',['L', 'P', 'P', 'L'],'I')
api.call(0,message,title,0)

第一个打开Internet Explorer,第二个打开一个消息框。 简单地说两者似乎都能够访问操作系统并使其完成任务。 win32ole是win32api的一个子集还是反过来?这两者有什么区别?

1 个答案:

答案 0 :(得分:1)

win32ole 用于与库和&amp ;;进行互操作。已编写为充当OLE / COM服务器的应用程序,请参阅What is COM?以获取该技术的说明。

win32api 与操作系统API(Win32)交互,后者也是实现OLE / COM的地方,但 win32ole 的存在可以方便地抽象出所涉及的大部分复杂性。通过其较低级别的API使用COM。