Консольное приложение C # для запуска собственных экземпляров на всех мониторах

#c# #.net #console #console-application

#c# #.net #консоль #консольное приложение

Вопрос:

У меня есть консольное приложение на C #, которое я хочу запускать на всех мониторах, мгновенно полностью экранируя.

У меня есть полноэкранный режим, работающий через SendKeys.SendWait() .

Это довольно легкое приложение, поэтому, если требуется запустить несколько экземпляров, это не имеет большого значения.

Что я пробовал: использование SendKeys.Send(), скрипт автозапуска для открытия приложения и перехода на второй монитор. Не повезло ни на одном из маршрутов. Предпочел бы, чтобы это было решение «все в одном», но все работает.

Я предполагаю, что это нужно будет сделать с помощью Main(), так что вот что:

  static void Main()
        {
            
            Console.SetWindowSize(Console.LargestWindowWidth, Console.LargestWindowHeight);
            Process[] processes = Process.GetProcessesByName("matrix");

            foreach (Process proc in processes)
            {
                SetForegroundWindow(proc.MainWindowHandle);
                SendKeys.SendWait("{F11}");
            }

            Console.ForegroundColor = NormalColor;
            Console.WindowLeft = Console.WindowTop = 0;
            Console.WindowHeight = Console.BufferHeight = Console.LargestWindowHeight;
            Console.WindowWidth = Console.BufferWidth = Console.LargestWindowWidth - 3;
            Console.SetWindowPosition(0, 0);
            Console.CursorVisible = false;

            int width, height;
            int[] y;
            Initialize(out width, out height, out y);//Setting the Starting Point
           
            while (true)
            {
                Counter = Counter   1;
                UpdateAllColumns(width, height, y);
                if (Counter > (3 * Interval))
                    Counter = 0;

            }
        }
  

Спасибо!

Комментарии:

1. Самый простой способ — просто зеркально отобразить ваши мониторы и запустить его только на одном! Никакого дополнительного кода не требуется!

2. Спасибо за эту идею, это может быть жизнеспособным вариантом. Есть ли у вас какие-либо идеи, как настроить зеркальное отображение всех мониторов в C #? Идеальной ситуацией было бы иметь один exe-файл, который обрабатывает все, а затем отменяет все изменения при закрытии.

3. Моя идея заключается в том, чтобы установить этот параметр в вашей ОС, например Windows, где вы просто настраиваете зеркальное отображение одного экрана на все мониторы, если это для вас неприемлемо, потому что вы хотите иметь разные представления на мониторах и использовать это консольное приложение ТОЛЬКО между ними, тогда это сложнее, но я личнобудет выглядеть в «стандартном выводе», он же (стандартный вывод) на C #.

4. Приносим извинения за отсутствие ясности в отношении намерений: это приложение разрабатывается для Windows 10 Pro с использованием Visual Studio 2019 с C # и последней версии. NET framework. Лично для меня оба рассматриваемых монитора являются идентичными устройствами. Но было бы лучше работать на всех мониторах независимо от размера и т. Д. Наличие зеркального трюка для отображения одного экрана на остальных вполне приемлемо и, вероятно, идеально. Я скоро прочитаю некоторую документацию о стандартном режиме, спасибо!

5. Я думаю, я должен также упомянуть цели проекта: В консольном приложении работает эффект Matrix waterfall, который автоматически открывается в полноэкранном режиме. Цель состоит в том, чтобы отобразить его на всех мониторах, а затем отключить весь ввод с клавиатуры. Полное закрытие приложения при нажатии специальной определенной комбинации клавиш. Эффективно создаю свой собственный экран блокировки.