ruby - Ruby win32api 和 win32ole 有什么区别?

标签 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 的子集还是相反?两者有什么区别?

最佳答案

win32ole 用于与编写为充当 OLE/COM 服务器的库和应用程序进行互操作,请参阅 What is COM?以获得对该技术的解释。

win32api 与操作系统 API (Win32) 交互,这也是实现 OLE/COM 的地方,但 win32ole 的存在是为了方便地抽象出许多涉及的复杂性通过其较低级别的 API 使用 COM。

关于ruby - Ruby win32api 和 win32ole 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234709/

相关文章:

ruby-on-rails - 将包含 AM/PM 的 12 小时时间字符串转换为 24 小时时间

ruby-on-rails - 全局常量未更新为正确的值

windows - 打印时获取文件名

java - 在生成 application/json 的 Web API 中返回简单字符串

javascript - 在 API 中使用变量

javascript - 在 ReactJS 中使用 If/Else 编写圆的半径

ruby-on-rails - 试图在 Ruby 中获取总和 - NameError

ruby-on-rails - ruby on Rails框架中有核心函数find_by_controller吗?

c++ - "call failed and did not execute"

python - Theano:在哪里放置 Anaconda 安装的 .theanorc 文件? ( Windows )