`

如何透過Ruby呼叫Win32API

阅读更多
研究了一下.. 寫出來當Memo..
我先以一個簡單的例子來解說,就用大家最愛的MessageBox吧!

require 'win32api'
msgbox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')
msgbox.call(0, "Message body", "Messagebox title", 1) # hwnd, lpText, lpCaption, wType => Come from API Viewer (API檢視員)

OK.. 開始來講解
1. require 'win32api'
這是將win32api.rb給引入的意思,跟C的#include用意相同

2. msgbox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')
實體化一個Win32API物件,第一個是dllname,第二個是要呼叫的東西,第三個是API參數傳遞時的資料型態,第四個是要回傳的資料型態
如果保持nil(也就是null)的話,就表示不會有傳入或回傳

3. msgbox.call(0, "Message body", "Messagebox title", 1)
透過這個物件呼叫,hwnd傳入0,lpText傳入"Message body"接著以此類推

我來張貼一下常數表

# type flag
MB_OK = 0
MB_OKCANCEL = 1
MB_ABORTRETRYIGNORE = 2
MB_YESNOCANCEL = 3
MB_YESNO = 4
MB_RETRYCANCEL = 5

# return values
IDOK = 1
IDCANCEL = 2
IDABORT = 3
IDRETRY = 4
IDIGNORE = 5
IDYES = 6
IDNO = 7
分享到:
评论

相关推荐

    纯Ruby创建Win32窗口

    在Ruby中创建Win32窗口,首先需要加载`win32api`库,然后定义并调用Win32 API函数,如`CreateWindowEx`、`RegisterClass`等,用于创建窗口类和实例化窗口。 `ruby.bmp`和`ruby.ico`是两个图形资源文件。`.bmp`文件...

    win32ole_ruby

    Win32OLE extension library provides an interface to OLE Automation from Ruby. Here is a sample script: require 'win32ole' application = WIN32OLE.new('Excel.Application') application.visible = TRUE...

    Ruby on Rails4 api.chm

    Ruby on Rails4 api.chm ruby on rails 4 最新api chm版本,方便大家阅览!

    Ruby API 帮助文档

    Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档

    ruby devkit for win32

    首先,标题"ruby devkit for win32"表明这是为32位Windows系统提供的Ruby开发工具包。Ruby DevKit包含了MinGW(Minimalist GNU for Windows)和MSYS(Minimal SYStem),这两个工具集提供了类似Unix的命令行环境,...

    ruby中英文api

    "ruby中英文api"资料集可能包含了对这些内容的解释,无论是对于初学者还是有经验的开发者,都是宝贵的参考资料。 "ruby中文文档.chm"可能是Ruby的中文版官方文档,这对于中文环境下的学习者来说非常方便。它可能...

    ruby on rails api

    标题“ruby on rails api”表明我们将讨论的是Rails框架的API(Application Programming Interface),这是一系列预先定义好的函数、类和模块,允许开发者通过调用来实现特定的功能,无需从头编写所有代码。...

    ruby api html

    Ruby API 文档是 Ruby 库、框架或工具的接口规范,它详细地解释了各种类、方法、模块和函数的使用方式,帮助开发者高效地在项目中集成和利用这些功能。 Ruby 1.8.6 是 Ruby 的一个旧版本,发布于2009年。在那个时期...

    Sketch Up Ruby API by Sugar.pdf

    Sketch Up Ruby API by Sugar Sketch Up Ruby API by Sugar 是一份关于 SketchUp 的 Ruby API 文档,用于帮助开发者使用 Ruby 语言开发 SketchUp 插件和应用程序。该文档提供了详细的 API 参考手册,涵盖了 ...

    Ruby API Docs帮助文档

    Ruby API Docs是针对Ruby编程语言的一份详尽的官方文档,它为开发者提供了关于Ruby标准库和核心类库的详细信息。这份文档包含了1.8.7和1.9.2两个版本,这两个版本在Ruby的发展历程中具有重要的地位。Ruby API Docs...

    ruby API资料

    Ruby API资料是一组重要的开发资源,它为使用Ruby编程语言的开发者提供了详尽的文档和接口信息。在本文中,我们将深入探讨Ruby API的核心概念、关键特性以及如何利用这些资料来提升开发效率。 Ruby是一种面向对象的...

    Ruby-FastJSONAPI一个用于Ruby对象的快速JSONAPI的序列化器

    **Ruby FastJSONAPI:高效实现JSON:API序列化的利器** Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大...

    jira-ruby, 用于 JIRA REST API的ruby gem.zip

    jira-ruby, 用于 JIRA REST API的ruby gem gem API 这里 gem 提供对 Atlassian REST API的访问。松弛加入我们的Slack 你可以在这里找到我们。示例用法require 'rubygems'require 'jira-ruby

    ruby on rails 2.3.5 api html版

    Ruby on Rails 2.3.5 API HTML版是针对该版本框架的重要开发参考资料,它包含了详细的API文档,帮助开发者理解并有效地使用Rails 2.3.5进行Web应用开发。Rails是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-...

    ruby 最新 安装文件 与 API

    在本资源中,我们关注的是Ruby的最新版本安装文件和API相关的内容。 标题中的"ruby 最新 安装文件"指的是Ruby的最新版本安装程序,这通常是针对特定操作系统的,比如在描述中提到的"ruby window 版本安装文件",是...

    Ruby API 帮助文档.zip

    Ruby API 帮助文档是开发者们在使用Ruby编程语言进行软件开发时的重要参考资料。它详细阐述了Ruby的标准库、类、方法以及其他关键组件的工作原理和使用方式,为程序员提供了全面且深入的理解,以提高开发效率和代码...

    rubyapi:Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。

    Ruby API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...

    win32ole mapi开发

    - `question ruby & outlook MAPI.mht` 可能包含关于如何使用Ruby通过`Win32OLE`和`MAPI`与Outlook集成的问题和解答。 - `Outlook, MAPI, Sending Mail - Ruby Forum.mht` 可能详细解释了如何使用Ruby发送邮件,特别...

    Ruby-使用百度地图API进行地址定位坐标坐标定位地址名称定位地址

    在Ruby开发中,有时我们需要将地址转换为经纬度坐标,或者根据坐标反向查询地址,这时可以利用百度地图API来实现。本篇文章将详细介绍如何在Ruby中使用百度地图API进行地址定位、坐标定位以及名称定位。 首先,我们...

    【sketchup开发必备】RUBY API for sketchup (狂刀整理版).CHM

    是 sketchup(草图大师)的ruby接口,提供su的对象、方法、属性。 是本人从su帮助的网上链接下载整理成chm的。

Global site tag (gtag.js) - Google Analytics