首页 > 其他分享 >go dll 获取 当前 光标位置 win10

go dll 获取 当前 光标位置 win10

时间:2023-03-16 16:44:28浏览次数:60  
标签:GetAsyncKeyState modUser32 uintptr dll go win10 FindProc 光标

package windll

import (
	"syscall"
	"unsafe"
)


var (
	modUser32, _            = syscall.LoadDLL("user32.dll")
	procGetKeyboardState, _ = modUser32.FindProc("GetKeyboardState")
	procGetAsyncKeyState, _ = modUser32.FindProc("GetAsyncKeyState")
	getCursorPosState, _    = modUser32.FindProc("GetCursorPos")
)

type POINT struct {
	X, Y int32
}

// GetAsyncKeyState 确定在调用该函数时某个键是按下还是按下,以及在上一次调用GetAsyncKeyState之后是否按下了该键
// 参考 https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
func GetAsyncKeyState(key int) uintptr {
	res, _, _ := procGetAsyncKeyState.Call(uintptr(key))
	return res & 0x8000
}

// GetCoords 获取当前光标位置
func GetCoords(point *POINT) bool {
	getCursorPosState.Call(uintptr(unsafe.Pointer(point)), 0, 0, 0)
	return true
}

标签:GetAsyncKeyState,modUser32,uintptr,dll,go,win10,FindProc,光标
From: https://www.cnblogs.com/ifnk/p/17223164.html

相关文章

  • Django模型(数据库)
    Django模型Django对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。Django为这些数据库提供了统一的调用API,可按需选择不同数据库。Django模型使用......
  • 用go实现master/worker模型
    packagescheduleimport( "container/list" "context" "fmt" "sync")/**********************************\ Task任务接口\*********************************......
  • 数据库同步,MongoDB、ES,寻求免费的可写入型的ODBC驱动
    大家好,我们开发的数据库同步软件DBSync,能同步多种数据库,支持增量同步、异构同步。但对于NoSQL的MongoDB,Elasticsearch,一直有个问题:官方的ODBC驱动只能读数据库,不能写数据......
  • 0007 ALGO1000-kAc给糖果你吃
    试题算法训练kAc给糖果你吃比较简单,排序后拿数量多的importjava.util.Arrays;importjava.util.Scanner;/***@authorHuaWang135608*@date2023.03.1613:1......
  • go-使用jwt生成令牌
    /*jwt-生成token测试1.首先需要定义一个结构体,这个结构体选哟继承jwt.StandardClain,s结构体2.定义key和过期时间3.实例化存储token的结构体4.使用指定的......
  • Expectation-Maximization algorithm
    1.IntroductionTheExpectation-Maximization(EM)algorithmisawidelyusedstatisticalalgorithmformaximumlikelihoodestimationincaseswherethereismi......
  • go微服务开发:go-zero入门教程
    以下内容,参考了go-zero官方文档,是对官方文档的进阶指南章节的梳理汇总。go-zero的进阶指南,请参考https://go-zero.dev/cn/docs/advance/business-dev第一步:下载并解压go......
  • 容器化docker部署nginx代理的go-web应用
    通常我们的web应用程序部署的时候不会直接暴露,通过nginx反向代理,一是隐藏真实后端,二是通过nginx的epoll网络IO多路复用,获取高性能的网络访问。今天我们分享个通过nginx代......
  • Golang-微服务-紧急升级-缓存
    1.背景API服务器timewait一直下不去尝试阿里云优化方案,修改内核配置,也不管用前端表现为:页面访问卡顿页面丢失(接口504)Postmanstart_trasfer参数忽高忽......
  • android的google三方登录一直返回10
    标题:com.Google.android.gms.common.api.apiException:10:为何一直报错,这个问题的来源是可参考这里的状态码:googleStatusCodes配置其实都很简单,可参考:googleAndroid登录......