sitiger 发表于 2019-2-19 13:42

一段代码关闭笔记本屏幕电源,从C语言转换到python

以前有一键关闭屏幕的软件,后来不知道放哪了,也不想找了,于是就自己写一个。

找了一下,有C语言版本的,代码如下:

#include <windows.h>
int main(void) {
    PostMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
    return 0;
}


但是C语言的不太方便嵌入到python代码中(可以从子进程调用,比较麻烦;也可以编译成python库,目前还没学过),

于是通过pywin32库,改写了一下,代码如下:

import win32con,win32api
win32api.PostMessage(win32con.HWND_BROADCAST,win32con.WM_SYSCOMMAND,win32con.SC_MONITORPOWER,2)

测试了一下,没问题,可以放到python代码中,也可以单独作为py文件使用。


Luffy_Plus 发表于 2019-2-19 14:15

kiki 发表于 2019-2-19 14:25

补充下 易语言代码

使用精益模块

系统_显示器操作 (2)

不使用模块
SendMessageA (65535, 274, 61808, 2)
DLL命令
.版本 2

.DLL命令 SendMessageA, 整数型, "user32", "SendMessageA", 公开
    .参数 hwnd, 整数型
    .参数 消息号, 整数型, , 消息的标识符
    .参数 参数一, 整数型, , 具体取决于消息
    .参数 参数二, 整数型, , 具体取决于消息


JuncoJet 发表于 2019-2-19 14:34

补充一下汇编代码
invoke SendMessageA65535, 274, 61808, 2

JuncoJet 发表于 2019-2-19 14:35

编译成exe的话,猜测我的版本可能是世界上最小的
https://www.52pojie.cn/thread-854508-1-1.html

sitiger 发表于 2019-2-19 19:53

JuncoJet 发表于 2019-2-19 14:34
补充一下汇编代码
invoke SendMessageA65535, 274, 61808, 2

牛刀杀鸡啊:lol
thx
页: [1]
查看完整版本: 一段代码关闭笔记本屏幕电源,从C语言转换到python