【Go 语言社区】转-golang windows 判断锁屏
时间:2022-05-04
本文章向大家介绍【Go 语言社区】转-golang windows 判断锁屏,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package osapi
import (
"syscall"
"unsafe"
"github.com/lxn/win"
)
const (
DESKTOP_SWITCHDESKTOP = 0x0100 // The access to the desktop
)
// get desktop locked status
func ScreenIsLocked() bool {
// load user32.dll only once
user32 := win.MustLoadLibrary("user32.dll")
openDesktop := win.MustGetProcAddress(user32, "OpenDesktopW")
closeDesktop := win.MustGetProcAddress(user32, "CloseDesktop")
switchDesktop := win.MustGetProcAddress(user32, "SwitchDesktop")
var lpdzDesktopPtr uintptr = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("Default"))) //string
var dwFloatsPtr uintptr = 0 //uint32
var fInheritPtr uintptr = 0 //boolean
var dwDesiredAccessPtr uintptr = uintptr(DESKTOP_SWITCHDESKTOP) //uint32
r1, _, _ := syscall.Syscall6(openDesktop, 4, lpdzDesktopPtr, dwFloatsPtr, fInheritPtr, dwDesiredAccessPtr, 0, 0)
if r1 == 0 {
panic("get desktop locked status error")
}
res, _, _ := syscall.Syscall(switchDesktop, 1, r1, 0, 0)
// clean up
syscall.Syscall(closeDesktop, 1, r1, 0, 0)
return res != 1
}
- spring boot集成druid连接池
- spring boot整合dubbox进行服务拆分
- Spring Cloud中如何保证各个微服务之间调用的安全性
- Spring Boot Actuator监控页面报错解决
- Spring Cloud中如何优雅的使用Feign调用接口
- Spring Cloud Eureka 集群高可用
- Spring Cloud Eureka 增加权限认证
- Spring Cloud Eureka 初探
- 房价网是怎么使用分布式作业框架elastic-job
- Spring Cloud Sleuth Zipkin 展示追踪数据
- Spring cloud Zuul Filter 使用小经验
- Spring Cloud Eureka REST 接口
- Spring Cloud Eureka 控制台快速查看Swagger API文档
- Spring Cloud Feign 启动UnsatisfiedDependencyException
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法