我正在为打开显示器而苦恼于此代码。我已经在Windows 10控制面板中设置了10分钟后关闭的显示屏,但我有一个用VB编写的语音识别应用程序,当我通过语音呼叫应用程序时,需要唤醒屏幕。那么是否有唤醒显示器槽的代码Visual Basic?我搜索了很长时间,但我只找到一些Java代码。谢谢你,祝你有美好的一天/晚上! :)如何用Visual Basic打开/唤醒屏幕
回答
K,所以,在the article on codeproject的指导下,给出了一些给出this question和pinvoke.net的答案,我已经有了一些工作。它可能更干净,但我把它留给你:)。毕竟是您的项目;)。
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
谢谢sooo!在尝试将Java和C转换为VB之后,尝试移动鼠标并成功移动光标但未唤醒屏幕!你在一个小时内完成了!现在我将它修剪出代码并将其实施到我的小型Arduino语音仪表板应用程序中。非常感谢! :) :) :) – Martin
不用担心,原生windows API几乎总是答案;)。听起来也是一个很酷的项目。也许我会受到启发,将我的arduino上的灰尘擦掉,并再次玩弄它:D。 – RoyalPotato
您可以使用Arduino板和VB进行串行通信来做很多事情。你甚至可以通过VB通过互联网控制电路板。 – Martin
- 1. 打开/唤醒屏幕一段时间
- 2. 如何在部分唤醒锁定期间打开屏幕
- 3. 屏幕没有在Android中打开唤醒锁定
- 4. 从服务的Android唤醒屏幕
- 5. Android:从服务中唤醒屏幕
- 6. 屏幕:如何打开备用屏幕?
- 7. 唤醒屏幕并在锁定屏幕上显示对话框
- 8. 如何用Visual Basic打开文件?
- 9. 如何在收到通知时唤醒屏幕?
- 10. 如何唤醒Android设备并跳过屏幕锁
- 11. 如何使Android后台服务仅在屏幕开启/唤醒时启动
- 12. 如何唤醒awakefromnib
- 13. 如何打印电脑唤醒源?
- 14. 如果设备检测到摇动事件,则唤醒屏幕
- 15. 当屏幕角度变化时唤醒iOS应用程序?
- 16. Android:onRestoreInstanceState在屏幕唤醒(并锁定)后未调用
- 17. Visual Basic,打开表格
- 18. 打开vbp Visual Basic项目
- 19. 如何从挂起模式唤醒后打开显示器?
- 20. 接收到通知时的唤醒屏幕
- 21. Android Wear:以编程方式唤醒屏幕
- 22. AlarmManager只需更新数据而不需要唤醒屏幕
- 23. Visual Basic中的屏幕尺寸
- 24. 从屏幕上的Visual Basic RBG捕获
- 25. 当唤醒时自定义锁定屏幕延迟
- 26. 如何用visual studio.net打开visual basic 6程序
- 27. 屏幕关闭时部分唤醒锁释放
- 28. Android游戏在唤醒屏幕后崩溃
- 29. iPhone,iPad唤醒屏幕命令问题/错误
- 30. JQuery打开新屏幕
肯定有办法通过win32 API调用来做到这一点。 – RoyalPotato
大约30秒后找到它:http://www.codeproject.com/Articles/11099/Turn-on-off-monitor – RoyalPotato
如果你需要我将它转换为vb给你,让我知道。 – RoyalPotato