ruby的魅力:直接呼叫Win32API

2024-02-15 17:10

本文主要是介绍ruby的魅力:直接呼叫Win32API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ruby的魅力:直接呼叫Win32API

Ruby是很强大,可以利用附加库dl/win32的Win32API模块直接呼叫win32API


Win32API.new
参数1 字符串 呼叫dll名称
参数2 字符串 dll中dllexport的名称
参数3 字符串数组 表示每个参数的类型 L代表Long P代表Point I代表Int V代表Void (在实际使用的时候HResult和各种Handle都是Long,字符串是P)
参数4 字符串 表示返回值类型 同上

require  " dl/win32 "

FindWindow 
=  Win32API.new  ' user32.dll ' ' FindWindow ' % w(L P),  ' L '
SetWindowText 
=  Win32API.new  ' user32.dll ' ' SetWindowText ' % W(L P),  ' I '

if  ARGV.length  ==  0 then
  puts 
" 使用说明: "
  puts 
" 一个参数时,是根据窗体标题查看窗体ID "
  puts 
" 两个参数时,是根据参数1的标题查找窗体,然后更改为参数2的标题 "
elsif ARGV.length 
>  0 then

  win 
=  FindWindow.call(0,ARGV.shift)
  puts win

  
if  win  !=  0 then
    bSet 
=  SetWindowText.call(win, ARGV.shift)
    
if  bSet  ==   1  then
      puts 
" Success! "
    
else
      puts 
" Fail! "
    end
  end
  
end

这篇关于ruby的魅力:直接呼叫Win32API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711998

相关文章

[项目][CMP][直接向堆申请页为单位的大块内存]详细讲解

目录 1.系统调用 1.系统调用 Windows和Linux下如何直接向堆申请页为单位的大块内存: VirtualAllocbrk和mmap // 直接去堆上按页申请空间static inline void *SystemAlloc(size_t kpage){#ifdef _WIN32void *ptr = VirtualAlloc(0, kpage << 13,

Spring Boot 注解探秘:HTTP 请求的魅力之旅

在SpringBoot应用开发中,处理Http请求是一项基础且重要的任务。Spring Boot通过提供一系列丰富的注解极大地简化了这一过程,使得定义请求处理器和路由变得更加直观与便捷。这些注解不仅帮助开发者清晰地定义不同类型的HTTP请求如何被处理,同时也提升了代码的可读性和维护性。 一、@RequestMapping @RequestMapping用于将特定的HTTP请求映射到特定的方法上

PageOfficeCtrl支持直接打开服务器磁盘文件

一般来说,PageOfficeCtrl控件的WebOpen方法的第一个参数是待打开文档的URL,此URL可以是相对于当前页面的相对URL,也可以是相对于整个网站根的相对URL,还可以是http开头的完整URL,但是这个URL必须是当前网站的URL,不能跨域。 现在为了更加方便开发者编程,WebOpen支持打开服务器磁盘文件。也就是说,第一个参数可以写成服务器文件的绝对磁盘路径。例如: P

最直接显示 ubuntu 版本号的命令

有时候去看ubuntu版本号,去网上查,很多文章都列出一堆命令,复制命令运行一下,都是打印一些不相关的信息,我只是想看ubuntu版本号而已,能否直接列出版本号就可以了。 有,下面这条命令就是直接的打印出ubuntu版本号, 没有多余信息 lsb_release -a

【UVA】10651-Pebble Solitaire(直接递归或者记忆化)

不知道这个题UVA的数据是怎么的,用2个方法交了,第一次直接递归,第二次记忆化剪枝,时间竟然一样!? 直接郁闷了,简单的二进制表示状态和二进制运算。 14145176 10651 Pebble Solitaire Accepted C++ 0.009 2014-09-04 09:18:21 #include<cstdio>#include<algorithm>#inclu

Anthropic 创始人 Dario Amodei 谈:关于护城河与风险,AI 大很难直接替代人

护城河的迷思   近期,Anthropic创始人Dario Amodei与投资人Erik Torenberg进行了一场引人关注的对话。他们探讨了AI的护城河与潜在风险。话说,护城河就像酒水的保质期,过了时间就得小心别翻车。Amodei提到,AI虽有强大的潜力,但短期内难以完全替代人类的智慧。这可让很多人松了一口气,毕竟机器发热总比人心复杂,听着都觉得不舒服。 聪明与控制的博弈   Dar

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

Base64编码 及 在HTML中用Base编码直接显示图片或嵌入其他文件类型

1.为什么要用到BASE64编码的图片信息      Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。最常见的用途是作为电子邮件或WebService附件的传输编码.  2.base64编码定义    目前的internet

Java虚拟机--直接内存

文章引用: 深入理解Java虚拟机 直接内存(Direct Memory)并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域.但是这部分内存也被频繁的使用,而且也可能导致OutOfMemoryError异常出现. 在JDK1.4中新加入NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式

开发app在android6.0运行直接退出解决(二)

上篇文章:http://blog.csdn.net/u013408979/article/details/52289534 只简单的解决能在android6.0运行,但没有根本的解决问题。 下面介绍解决方法: 参考 http://xdeveloper.cn/gai-jin-ban-android6-0quan-xian-gua-pei-bi-ni-xiang-de-huan-yao-ji