2016-05-21 57 views
1

このコードでは、モニターの電源を入れるのに苦労しています。私はWindows 10のコントロールパネルに10分後に消灯するようにディスプレイを設定しましたが、VBで書かれた1つの音声認識アプリがあり、音声でアプリケーションを呼び出すと画面が復帰する必要があります。モニタートラフを目覚めさせるコードはありますか?Visual Basic?私は長い時間を探しましたが、私はいくつかのJavaコードしか見つけません。ありがとう、素晴らしい一日/夜を! :)Visual Basicで画面を表示/非表示にする方法

+0

確かにwin32 api呼び出しでこれを行う方法があります。 – RoyalPotato

+0

約30秒後にそれが見つかりました:http://www.codeproject.com/Articles/11099/Turn-on-off-monitor – RoyalPotato

+0

私にあなたのためにそれをVBに変換する必要があれば、私に教えてください。 – RoyalPotato

答えて

0

Kのように、the article on codeprojectの案内で、this questionとに与えられた答えのいくつか、私は何か働いている。それはよりきれいかもしれませんが、私はそれをあなたに任せます:)。結局あなたのプロジェクトはです;)。

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

soooたくさんありがとう!マウント完了後、私はJavaとCをVBに変換しようとしていましたが、マウスを移動しようとするとカーソルを移動させても画面は表示されませんでした。あなたは1時間でそれをやった!今度はコードをトリムして、小さなArduino音声ダッシュボードアプリケーションに実装します。どうもありがとうございます! :) :) :) – Martin

+0

心配しないで、ネイティブウィンドウAPIはほとんどの答えです;)。クールなプロジェクトのように聞こえます。たぶん、私はarduinoのほこりを拭き取って、もう一度一緒に遊んでみましょう:D。 – RoyalPotato

+0

ArduinoボードとVBとのシリアル通信では、たくさんのことができます。 VB経由でインターネット経由でボードを制御することもできます。 – Martin

関連する問題