2016-12-20 3 views
3

Кусочек рубина кода с использованием win32oleВ чем разница между Ruby win32api и win32ole?

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) 

Первый из них открывает интернет-проводник, а второй отображает окно сообщения. Просто говорят, что оба, похоже, могут получить доступ к ОС и заставить их делать что-то. Является ли win32ole подмножеством win32api, или наоборот? Какая разница между двумя?

ответ

1

win32ole является для взаимодействия с библиотеками & приложений, которые были написаны в качестве OLE/COM-серверов, см What is COM? для объяснения этой технологии.

win32api взаимодействует с операционной системой API (Win32), которая также, где реализуется OLE/COM, но win32ole существует удобно абстрагировать много сложностей, связанные с использованием COM через его нижний уровень API ,

Смежные вопросы