为什么关屏不能重复的多次执行?

yang3246189 2017-12-10 05:31:36

Option Explicit
Private Const HWND_BROADCAST As Long = &HFFFF&
Private Const WM_SYSCOMMAND As Long = &H112
Private Const SC_MONITORPOWER As Long = &HF170&
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByRef lParam As Any) As Long
Private Sub Command1_Click()
SendMessage HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 2&
End Sub

上面的代码只能执行一次关闭屏幕,然后就没有响应了,为什么不能重复的多次关屏?要想能够重复执行,该怎样写呢?
...全文
4472 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2017-12-13
  • 打赏
  • 举报
回复
不对,彰显C格。
X-i-n 2017-12-13
  • 打赏
  • 举报
回复
引用 8 楼 Chen8013 的回复:
[quote=引用 7 楼 yang3246189 的回复:] 不好意思,不会用VC++
你的VB6代码就能正常运行的,还用什么C++ !!! [/quote] 因为老赵最喜欢干这种脱裤子放屁的事来误导别人啊,不然怎么彰显B格。
yang3246189 2017-12-13
  • 打赏
  • 举报
回复
不好意思,不会用VC++
舉杯邀明月 2017-12-13
  • 打赏
  • 举报
回复
引用 7 楼 yang3246189 的回复:
不好意思,不会用VC++
你的VB6代码就能正常运行的,还用什么C++ !!!
赵4老师 2017-12-12
  • 打赏
  • 举报
回复
引用 5 楼 yang3246189 的回复:
是VB代码,楼上的思路行不通啊!
将4楼C代码编译生成比如MonitorPowerOff.exe 然后在VB6中
Shell “MonitorPowerOff.exe”,vbHide
赵4老师 2017-12-11
  • 打赏
  • 举报
回复
仅供参考:
#pragma comment(lib,"user32")
#include <windows.h>
void main() {
    ::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
    Sleep(1000);
    ::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
    Sleep(1000);
    ::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
}
舉杯邀明月 2017-12-11
  • 打赏
  • 举报
回复
希望那段代码执行后不关闭” 你这说法好奇怪!  如果执行了,它怎么可能不关闭! 这并不是说,“有代码就一定会被执行到”的,就比如你贴出来的这一段, 在“运行程序”后,还需要触发那个“按钮单击事件”,或者代码中其它地方“主动调用”,才会被执行。 如果“全部代码”就是你贴出来的那些,当然就没有“其它地方调用”的,唯一的执行条件就是“触发事件”。 这个跟“系统”无关的(网友:我的安卓系统,能运行吗?  我:滚!!!),   Win2K以上的系统,肯定都没问题。如果你还能找到Win98的话,估计也能正确运行的。 我刚才也试过,反复关闭/恢复了10来次,都没发生“不起作用”的事。我的系统是 Win7 旗舰版,64位/SP1 。 你需要注意的是,点击鼠标之后,在它“关闭过程”中,就不要移动鼠标、碰到任何按键了…… 你自己可以新建一个标准EXE工程、画个按钮,把代码粘贴上去,运行试试。
yang3246189 2017-12-11
  • 打赏
  • 举报
回复
我用的操作系统是win7。我说的是,希望那段代码执行后不关闭,然后随时点击按钮,就可以随时关闭屏幕。实际上,那段代码在执行后,第一次点击按钮,可以关闭屏幕,然后那段代码就进入无响应状态,即使启用屏幕之后,在不关闭代码的情况下,弟二次点击按钮,就没有反应了。代码是我在网上搜到的,听人说要想学好API,需要对C语言和操作系统的运行机制有很深的了解,可我不会任何编程语言,零基础,VB也是刚看教程,连新手都谈不上,希望编程大神们能够不吝赐教!
yang3246189 2017-12-11
  • 打赏
  • 举报
回复
是VB代码,楼上的思路行不通啊!
舉杯邀明月 2017-12-10
  • 打赏
  • 举报
回复
不明白你说的“不能重复的多次执行”是什么意思。 如果屏幕“亮着”,执行一次,系统自然就会让屏幕“熄屏”,干嘛要“执行多次”呢 !!!   在“熄屏”之后,如果你动了鼠标、按了键盘上某个键,都会使屏幕恢复。 等屏幕亮起之后,你再次执行那个代码,没有问题啊…………

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧