2016-12-20 60 views
3

使用win32apiRuby win32api和win32ole有什么区别?

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) 

首先一个使用win32ole

require 'win32ole' 
ie = WIN32OLE.new('InternetExplorer.Application') 
ie.visible = true 
ie.gohome 

某些代码一块红宝石代码打开的Internet Explorer,第二个显示一个消息框。 简单地说,两者似乎都可以访问操作系统并使其执行任务。 win32ole是win32api的一个子集,还是相反?两者有什么区别?

回答

1

WIN32OLE是与图书馆互操作已写入作为OLE/COM服务器,请参阅What is COM?该技术的解释&应用。

WIN32API与操作系统API(Win32的),它也是在那里OLE/COM被实现交互,但WIN32OLE的存在是为了方便抽象掉大部分的参与通过其下部水平API利用COM的复杂性。