首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Visual打开/唤醒屏幕

如何用Visual打开/唤醒屏幕
EN

Stack Overflow用户
提问于 2016-05-21 16:50:32
回答 1查看 1.9K关注 0票数 1

我在为打开显示器的代码而挣扎。我已经设置在Windows 10控制面板显示关闭后10分钟,但我有一个语音识别应用程序编写的VB,我需要唤醒屏幕时,我打电话给应用程序的声音。那么,是否有用Visual 唤醒监视器的代码呢?我搜索了很长时间,但我只找到一些Java代码。谢谢,祝你白昼/夜晚愉快!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-21 20:12:28

所以,在关于代码工程的文章的指导下,给这个问题pinvoke.net的一些答案,我得到了一些有用的东西。它可能会更干净,但我由你决定:)。毕竟,这是你的计划。

代码语言:javascript
复制
Imports System.Runtime.InteropServices

Public Class Monitor
    Private Const WM_SYSCOMMAND As Integer = &H112
    Private Const SC_MONITORPOWER As Integer = &HF170
    Private Const HWND_BROADCAST As Integer = &HFFFF
    Private Const INPUT_MOUSE As Integer = 0
    Private Const MOUSEEVENTF_MOVE As Integer = 1

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
    End Function

    <DllImport("user32.dll", SetLastError:=True)>
    Private Shared Function SendInput(<[In]()> ByVal nInput As UInt32,<[In](), MarshalAs(UnmanagedType.LPArray, ArraySubtype:=UnmanagedType.Struct, SizeParamindex:=0)> ByVal pInputs() As INPUT, <[In]()> ByVal cbInput As Int32) As UInt32
    End Function

    Private Structure INPUT
        Public type As Integer
        Public dx As Integer
        Public dy As Integer
        Public mouseData As Integer
        Public dwFlags As Integer
        Public time As Integer
        Public dwExtraInfo As IntPtr
    End Structure


    Public Shared Sub Disable()
         SendMessage(New IntPtr(HWND_BROADCAST), WM_SYSCOMMAND, SC_MONITORPOWER, New IntPtr(2))
    End Sub

    Public Shared Sub Enable()
        Dim input = New INPUT()

        input.type = INPUT_MOUSE
        input.dx = 1
        input.dy = 0
        input.mouseData = 0
        input.dwFlags = MOUSEEVENTF_MOVE
        input.time = 0
        input.dwExtraInfo = IntPtr.Zero

        SendInput(1, {input}, 28)
    End Sub
End Class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37365655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档