Хобрук: Ваш путь к мастерству в программировании

Запуск задания по времени и возврат значений обратно в родительскую форму

Я все еще новичок в мире PowerShell и программирования в целом, и я предпринял проект, который поможет мне учиться. Я пытаюсь создать функцию, которая сравнивает список запущенных процессов со списком тех, которые должны быть запущены. Затем функция вернет объект со значением «Вкл.» или «Выкл.». Ниже приведено то, что я сейчас написал, и это работает, но теперь мне нужно превратить это в задание, которое запускается каждые несколько секунд. Пожалуйста, кто-нибудь может помочь? Буду признателен за любую оказанную помощь.

function CheckRunningProcessesFunc
{
    $Processes = (Get-Variable InclusionList).Value.CheckedItems #List of proceese to check if they are on or off
    $RunningProcesses = Get-WMIObject Win32_Process -filter "Name='adc.exe' OR Name='optask.exe'" | select -expand path #current running processes
    foreach ($Process in $Processes)
    {
        $TimeNow = get-date -Format ‘HH:mm:ss’
        $Text = $TimeNow + " " + $Process
        if ($RunningProcesses -contains $Process)
        {
            $Result = $Text + ' is On'
            (Get-Variable ListBox).Value.Items.Add($Result)
        }
        else
        {
            $Result = $Text + ' is Off'
            (Get-Variable ListBox).Value.Items.Add($Result)
        }
    }
}
04.03.2015

  • Как вы хотите обработать результат? Вы хотите запустить его как фоновую задачу и сохранить результат в файле журнала, или вы хотите запустить его в окне оболочки, пока вы не отмените его вручную? 04.03.2015
  • @JonC Привет, Джон, у меня есть форма Windows со списком, и я хотел бы добавить результат в список (Get-Variable ListBox).Value.Items.Add($Result). У меня также есть текстовое поле RefreshInputBox, в котором я хотел бы, чтобы пользователь ввел значение (в секундах) для частоты обновления задания. Любая дальнейшая помощь, которую вы можете оказать, будет высоко оценена! Большое спасибо, DogManDave 05.03.2015

Ответы:


1

Из вашего комментария кажется, что вы используете PowerShell для написания графического интерфейса .NET. Это довольно необычный подход, поскольку PowerShell по сути является языком сценариев. Чтобы поддерживать отзывчивость графического интерфейса, вам всегда нужно избегать блокирующего кода и полагаться на такие методы, как обработка событий и функции обратного вызова. PowerShell не предназначен для этого.

Поскольку PS построен на платформе .NET, ничто не мешает вам создавать экземпляры встроенных объектов, таких как класс Stopwatch, но потребуется колоссальный объем работы, чтобы добиться удовлетворительного взаимодействия с PS.

Моя рекомендация: если вы хотите использовать WinForms, используйте C#. Затем, если вы хотите использовать некоторые сильные стороны PowerShell, в вашем распоряжении будет все пространство имен System.Management.Automation.

05.03.2015
Новые материалы

Краткое руководство для начинающих по простому сквозному тестированию с помощью Cypress
Автоматизированное тестирование, требующее только базовых навыков JavaScript. Цель этой статьи - показать, как с минимальными усилиями вы можете добавить полезные сквозные (E2E) тесты в свой..

Руководство по быстрой разработке рекомендательной системы промышленного уровня
В этой статье я намерен предоставить краткий обзор методов, которые можно использовать для разработки хорошо работающей рекомендательной системы. Я начал работать над Recommender Systems около 6..

Arshaw FullCalendar для AngularJS — проблемы, с которыми столкнулись, и найденные решения для их устранения
Arshaw FullCalendar — это полноразмерный календарь событий с возможностью перетаскивания, использующий jQuery. Подробнее об этом можно узнать здесь . Директива ui-calendar — это полная..

Простое руководство по Redux для разработчиков React
Понимание строительных блоков Redux Redux — это инструмент управления состоянием, который чаще всего используется с React или React Native. Когда я впервые начал использовать его год назад,..

присоединение к атрисмаркетингу
присоединение к атрисмаркетингу И много дополнительных привилегий. маркетинг — реклама-хорошие отзывы клиентов-доверие-счастье-лояльность и опытные сотрудники устойчивые лесозаготовительные..

КОВАРИАНТНОСТЬ И КОРРЕЛЯЦИЯ
ВВЕДЕНИЕ В этом посте мы обсудим ковариацию и корреляцию. Это играет важную роль при выборе функций. Статистические корреляции говорят нам как о силе связи между двумя переменными, так..

Использование матриц Вигнера в случаях машинного обучения, часть 8
Равномерный локальный закон для матриц Вигнера (arXiv) Автор: Джорджо Чиполлони , Ласло Эрдеш , Доминик Шредер . Аннотация: Мы доказываем общий локальный закон для матриц Вигнера, который..