lua学习之——有道词典“划词”的秘密

本文的目的是为了学习总结lua调用C函数的过程。文章的标题看上去过于标新立异了,其实主要是为了在Lua中获取和修改Windows的剪贴板;因为有道词典“划词”的秘密就是通过剪贴板进行字母的传递,文章的标题由此得来。先给出本文的结果

当有道词典进行“划词”(不是取词哦,取词是通过hook进行的)操作的时候,lua就会print出那个被划的字母了。

setClipBoard("");
while true do
	str = getClipBoard()
	if(str ~= "")then
		print(str)
	end
end
setClipBoard和getClipBoard并不是lua的内置函数,而是通过修改lua.c加上去的。lua提供了一套很简单的方法添加C/C++的函数,详细的描述请参看《lua程序设计》,而我只负责讲解这两个和剪贴板有关的函数。在lua工程里添加:extlua.cpp和extlua.h。

在exlua.cpp中主要实现了复制和粘贴的功能,实现如下:

#include <Windows.h>
#include "extlua.h"

bool SetClipBoard(const char * str)
{
    if(!OpenClipboard(NULL) || !EmptyClipboard())
    {
        return 0;
    }

    HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, (strlen(s
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值