2016-12-20 93 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的複雜性。