Ruby windows API
Get cursor position with Win32API
result = "0"*8 # Eight bytes (enough for two longs) getCursorXY = Win32API.new("user32","GetCursorPos",["P"],"V") getCursorXY.call(result) x, y = result.unpack("LL") # Two longs
Use Win32API to get a pointer a function
require "Win32API" def system(cmd) sys = Win32API.new("crtdll", "system", ['P'], 'L') sys.Call(cmd) end system("dir") # cmd /c not needed!
Read from keyboard
require 'Win32API' def getch @getch ||= Win32API.new('crtdll', '_getch', [], 'L') @getch.call end while (c = getch) != ?\e puts "You typed #{c.chr.inspect}" end
Working with Microsoft Windows: open a dialog box:
require 'Win32API' title = "My Application" text = "Hello, world!" Win32API.new('user32', 'MessageBox', %w{L P P L}, 'I').call(0, text, title, 0)
Open a dialog and check the result
require 'Win32API' title = "My Application" text = "Hello, world!" dialog = Win32API.new('user32', 'MessageBox', 'LPPL', 'I') result = dialog.call(0, text, title, 1) case result when 1: puts "Clicked OK" when 2: puts "Clicked Cancel" else puts "Clicked something else!" end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix