c#ScreenCapture和BlackScreen和RemoteControl

时间:2019-10-16 07:55:52

标签: c#

感谢大家阅读我的帖子。 (我的英语水平不好.........)

我必须制作远程控制软件。 (即将完成项目)

我的客户希望此功能为“黑屏模式”。

我该怎么做?有人有个好主意吗?

我已经完成了两种方法的测试。

Try. 1     (Vnc BlankScreen Code.)


-Turn Off Monitor
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2);



-Turn ON Monitor
    mouse_event(MOUSEEVENTF_MOVE, 0, 0, 0, UIntPtr.Zero);

它可以工作,但是当关闭显示器时。

它将在短时间内停止。 (1〜10ms),并且只能在桌面上使用。 (故障笔记本电脑和笔记本电脑以及某些显示器等)

Try. 2     (Top Most Black Form Control Opacity)

Thread_Proc
{
   while(true)
   {
      this.Opacity = 0;
      CaptureScreen();
      this.Opacity = 100;
   }
}

我的项目捕获30fps帧..但是..那就是许多闪烁。 (而不是安全性T_T)

void Cap_Proc1()
{
    try
    {
        while (true)
        {
            this.Invoke(new Action(() =>
            {
                this.Opacity = 0;
                CaptureScreen();
                this.Opacity = 100;
            }));

            Thread.Sleep(100);
        }
    }
    catch (ThreadInterruptedException ex) { }
}


void Cap_Proc2()
{
    try
    {
        while (true)
        {
            this.Invoke(new Action(() =>
            {
                SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2);
                mouse_event(MOUSEEVENTF_MOVE, 0, 0, 0, UIntPtr.Zero);
                CaptureScreen();

            }));

            Thread.Sleep(100);
        }
    }
    catch (ThreadInterruptedException ex) { }
}

请大家帮我...

0 个答案:

没有答案