欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

golang设置桌面壁纸

最后更新 2020-07-04 13:21:17   阅读量 1445

Table of Contents

  • 1. golang调用windows-api

golang语言编写,设置windows桌面壁纸,图片来自于必应网站(cn.bing.com)

github源码地址:https://github.com/tujiaw/gowallpaper
有兴趣的Star一下吧

编译好的程序:https://pan.baidu.com/s/1l5OW9GeuUF0r5TFaBWkWZg (提取码:pcqh)

直接双击运行,显示如下:

设置微软必应的壁纸,用法如下:
day     - 每天更新壁纸
now     - 设置当天壁纸
prev    - 设置前一天壁纸
next    - 设置后一天壁纸
rand    - 间隔随机切换壁纸(如每分钟切换壁纸:rand 1m)
quit    - 退出
#

golang调用windows API

``` package winapi

import (

"log"
"syscall"
"unsafe"

)

var ApiList = map[string][]string {

"user32.dll": {
    "MessageBoxW",
    "SystemParametersInfoW",
},
"kernel32.dll": {

},

}

var ProcCache map[string]*syscall.Proc

func init() {

ProcCache = make(map[string]*syscall.Proc)
for dllName, apiList := range ApiList {
    d, err := syscall.LoadDLL(dllName)
    if err != nil {
        panic(err)
    }
    for _, name := range apiList {
        api, err := d.FindProc(name)
        if err != nil {
            log.Println(err, name)
        }
        ProcCache[name] = api
    }
    _ = syscall.FreeLibrary(d.Handle)
}

}

func WinCall(name string, a ...uintptr) {

if api, ok := ProcCache[name]; ok {
    _, _, err := api.Call(a...)
    if err != nil {
        log.Println(err)
    }
} else {
    log.Println("api not found, name:", name)
}

}

func IntPtr(n int) uintptr {

return uintptr(n)

}

func StrPtr(s string) uintptr {

p, _ := syscall.UTF16PtrFromString(s)
return uintptr(unsafe.Pointer(p))

}

func ShowMessage(title, text string) {

WinCall("MessageBoxW", IntPtr(0), StrPtr(text), StrPtr(title), IntPtr(0))

}

func SetWallpaper(bmpPath string) {

WinCall("SystemParametersInfoW", IntPtr(20), IntPtr(0), StrPtr(bmpPath), IntPtr(3))

} ````

(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – QWidget QLabel没有响应keyEvent键盘事件
上一篇 – 编程语录

  1. Go

toningto@outlook.com

推荐文章

Effective Python

Python的几种函数参数类型

标签云

Mac React Database Qt Node.js Javascript Product C/C++ Python Bug Tools Windows Linux Tips Design Go IOS MongoDB Shell Android Mobile Life Java Web MQ Others Boost

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2