0

我有 2 台戴尔显示器和一台电视。我经常用电视播放电影。我想创建一个脚本,以便我的辅助屏幕从我的辅助 DELL 显示器切换到电视,而不会影响我的主显示器。

我知道这可以通过多种方式实现,但我想创建一个脚本,以便它能够检测到当前活动屏幕,然后切换到另一个,这样我的妻子就可以双击它来切换他们俩。

有人可以通过让我知道我可以使用哪种脚本语言以及我需要使用哪些库/dll 来帮助我入门吗?

4

1 回答 1

0

对于任何好奇的人,我最终为此创建了一个 C# 控制台应用程序。这样我就可以使用 WinAPI 来确定我所处的显示模式并切换到我想要的显示模式。它不会根据每个人的需要进行设置,但它应该是一个很好的起点。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DisplaySwitcher
{
    class Program
    {
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern int GetSystemMetrics(int nIndex);

        public const int SM_CMONITORS = 80;

        static void Main(string[] args)
        {
            int iNumberOfDisplays = GetSystemMetrics(SM_CMONITORS);
            string displaySwitch = null;
            switch (iNumberOfDisplays)
            {
                case 1: // TV mode (only detects 1 display)
                    displaySwitch += "/external";
                    break;
                case 2: // Normal mode (extended display)
                    displaySwitch += "/clone";
                    break;
                default:
                    MessageBox.Show("Unknown display mode detected");
                    break;
            }

            executeCommand(displaySwitch);
        }

        private static void executeCommand(string displaySwitch)
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
            startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            startInfo.FileName = "DisplaySwitch.exe";
            startInfo.Arguments = displaySwitch;
            process.StartInfo = startInfo;
            process.Start();
        }

    }
}
于 2013-04-14T05:01:58.037 回答