Browse Source

显示器控制

Lishi
pry 1 year ago
parent
commit
7f1ea535ed
1 changed files with 2 additions and 249 deletions
  1. +2
    -249
      HKHelper/TelevisionStart.cs

+ 2
- 249
HKHelper/TelevisionStart.cs View File

@@ -13,194 +13,17 @@ using System.Threading;

namespace HKHelper
{

// 用于从远程设备接收数据的状态对象。
//public class StateObject
//{
// public Socket workSocket = null;
// public const int BufferSize = 16384;
// public byte[] buffer = new byte[BufferSize];
// public StringBuilder sb = new StringBuilder();
//}

//public class AsynchronousClient
//{
// private const int port = 9090;
// private static ManualResetEvent connectDone = new ManualResetEvent(false);
// private static ManualResetEvent sendDone = new ManualResetEvent(false);
// private static ManualResetEvent receiveDone = new ManualResetEvent(false);
// private static String response = String.Empty;

// private static void StartClient()
// {
// try
// {
// IPHostEntry ipHostInfo = Dns.GetHostEntry("kwikwai.local");
// IPAddress ipAddress = ipHostInfo.AddressList[0];
// IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);

// Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client);
// connectDone.WaitOne(5000);

// Send(client, "cec:listen:set 1\r\n");
// sendDone.WaitOne(5000);

// Receive(client);
// receiveDone.WaitOne(10000);

// client.Shutdown(SocketShutdown.Both);
// client.Close();

// }
// catch (Exception e)
// {
// Console.WriteLine(e.ToString());
// }
// }

// private static void ConnectCallback(IAsyncResult ar)
// {
// try
// {
// Socket client = (Socket)ar.AsyncState;

// client.EndConnect(ar);

// Console.WriteLine("Socket connected to {0}", client.RemoteEndPoint.ToString());

// connectDone.Set();
// }
// catch (Exception e)
// {
// Console.WriteLine(e.ToString());
// }
// }

// private static void Receive(Socket client)
// {
// try
// {
// StateObject state = new StateObject();
// state.workSocket = client;
// client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
// }
// catch (Exception e)
// {
// Console.WriteLine(e.ToString());
// }
// }

// private static void ReceiveCallback(IAsyncResult ar)
// {
// try
// {
// StateObject state = (StateObject)ar.AsyncState;
// Socket client = state.workSocket;

// int bytesRead = client.EndReceive(ar);

// if (bytesRead > 0)
// {
// state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));
// Console.WriteLine(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));

// client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
// }
// else
// {
// if (state.sb.Length > 1)
// {
// response = state.sb.ToString();
// }
// receiveDone.Set();
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(e.ToString());
// }
// }

// private static void Send(Socket client, String data)
// {
// byte[] byteData = Encoding.ASCII.GetBytes(data);

// client.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), client);
// }

// private static void SendCallback(IAsyncResult ar)
// {
// try
// {
// Socket client = (Socket)ar.AsyncState;

// int bytesSent = client.EndSend(ar);
// sendDone.Set();
// }
// catch (Exception e)
// {
// Console.WriteLine(e.ToString());
// }
// }

// public static int Main(String[] args)
// {
// StartClient();
// return 0;
// }
//}








































public class TelevisionStart
{
public static bool TurnOn()
{
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1)!=0;
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1) != 0;
}

public static bool TurnOff()
{
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)!=0;
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2) != 0;
}

[DllImport("user32.dll")]
@@ -209,77 +32,7 @@ namespace HKHelper
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
private const uint WM_SYSCOMMAND = 0x0112;
private const int SC_MONITORPOWER = 0xf170;

//public void TurnOn()
//{
// SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
//}

//public void TurnOff()
//{
// SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
//}

// 如果函数执行成功,返回值不为0。
// 如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。
//[DllImport("user32.dll ", SetLastError = true)]
//public static extern bool RegisterHotKey(IntPtr hWnd, int id, KeyModifiers fsModifiers, Keys vk);

//public static extern bool RegisterHotKey(IntPtr hWnd, // 要定义热键的窗口的句柄
// int id, // 定义热键ID(不能与其它ID重复)
// KeyModifiers fsModifiers, // 标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效
// Keys vk // 定义热键的内容
// );

//[DllImport("user32.dll ", SetLastError = true)]
//public static extern bool UnregisterHotKey(IntPtr hWnd, int id);

//[DllImport("user32.dll ", SetLastError = true)]
//public static extern bool UnregisterHotKey(
// IntPtr hWnd, // 要取消热键的窗口的句柄
// int id // 要取消热键的ID
// );

//[DllImport("user32.dll")]
//public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

//private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
//private const uint WM_SYSCOMMAND = 0x0112;
//private const int SC_MONITORPOWER = 0xf170;

//protected override void WndProc(ref Message m)
//{
// const int WM_HOTKEY = 0x0312;
// // 按快捷键
// switch (m.Msg)
// {
// case WM_HOTKEY:
// switch (m.WParam.ToInt32())
// {
// case 100:
// TurnOn();
// break;
// case 101:
// TurnOff();
// break;
// }
// break;
// }
// base.WndProc(ref m);
//}
}

// 定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Ctrl = 2,
Shift = 4,
WindowsKey = 8
}


}


Loading…
Cancel
Save