Постоянно обновлять.txt файл с заголовком открытого окна приложения?
Допустим, у меня запущено окно браузера, и заголовок окна выглядит примерно так: "Заголовок здесь - Mozilla Firefox". Я хочу постоянно обновлять файл.txt, который содержит заголовок этого окна, то есть файл.txt должен меняться при изменении строки заголовка (не обязательно мгновенно, может быть, каждую 1 секунду).
Я уже знаю, что это возможно в Linux с wmctrl
и немного сценариев, но я хотел бы сделать это на Windows 10.
Как я могу сделать это? Какие приложения или SDK мне понадобятся?
РЕДАКТИРОВАТЬ: Если кому-то любопытно увидеть сценарий Powershell, я закончил, вот и все. Сохраните его как файл.ps1 для запуска (и обязательно включите сценарии Powershell.)
2 ответа
Это должно помочь вам начать использовать 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
}
Я подозреваю, что это не самое элегантное предложение, но оно может сработать, особенно если вам удобно создавать сценарии. Macro Express Pro - это программа, которая работает с Windows и обладает существенными функциями. Циклическое и логическое управление в Macro Express довольно мощное. Одной из особенностей, которые я обнаружил в рамках этого исследования, является возможность загрузки строковой переменной в строку заголовка текущего окна. https://www.macros.com/help/Index.htm Я использовал "строку заголовка" в качестве условия поиска и нажал на запись "Задать строковую переменную". Прокрутка вниз в результатах показывает:
Установить значение для верхней части самого заголовка окна
Исследует окно, которое в настоящее время находится поверх всех остальных, берет имя, которое находится на панели заголовка (то есть заголовок окна), и помещает его в переменную.
Мне не хватает навыков написания сценариев, чтобы предлагать, как впредь обрабатывать строковую переменную, поскольку любые действия могли бы изменить фокус окна, но вы можете обнаружить большую гибкость, чем я, в общей программе.