3

Допустим, у меня запущено окно браузера, и заголовок окна выглядит примерно так: «Заголовок здесь - Mozilla Firefox». Я хочу постоянно обновлять файл .txt, который содержит заголовок этого окна, то есть файл .txt должен изменяться при изменении строки заголовка (не обязательно должен быть мгновенным, возможно, каждую 1 секунду).

Я уже знаю, что это возможно в Linux с wmctrl и небольшим количеством сценариев, но я хотел бы сделать это в Windows 10.

Как я могу сделать это? Какие приложения или SDK мне понадобятся?

РЕДАКТИРОВАТЬ: Если кому-то любопытно увидеть сценарий Powershell, я закончил, вот и все. Сохраните его как файл .ps1 для запуска (и обязательно включите сценарии Powershell.)

2 ответа2

4

Это должно помочь вам начать использовать PowerShell. Код был адаптирован из блога MSDN и из ответа StackOverflow Кейта Хилла. Смотрите его ответ для описания параметров.

$period = [timespan]::FromSeconds(5) $lastRunTime = [DateTime]::MinValue while (1) { while ((Get-Date) - $lastRunTime -lt $period) { Start-Sleep -Milliseconds 500 } $lastRunTime = Get-Date Get-Process |where {$_.MainWindowTitle} |format-table MainWindowTitle –AutoSize > c:\users\username\title.txt }

0

Я подозреваю, что это не самое элегантное предложение, но оно может сработать, особенно если вам удобно создавать сценарии. Macro Express Pro - это программа, которая работает с Windows и обладает существенными функциями. Циклическое и логическое управление в Macro Express довольно мощное. Одной из особенностей, которые я обнаружил в рамках этого исследования, является возможность загрузки строковой переменной в строку заголовка текущего окна. https://www.macros.com/help/Index.htm Я использовал "строку заголовка" в качестве условия поиска и нажал на запись "Задать строковую переменную". Прокрутка вниз в результатах показывает:

Установить значение для верхней части самого заголовка окна

Исследует окно, которое в настоящее время находится над всеми остальными, берет имя, которое находится на панели заголовка (то есть заголовок окна), и помещает его в переменную.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .