Присвоение дескрипторов окна переменным в cmd скрипту для перемещения окон - PullRequest
0 голосов
/ 02 мая 2019

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

Я хочу написать скрипт, который перемещает эти окна в разные координаты.

Я пытался использовать cmdow.exe для перемещения открытых окон. Однако мне нужно обращаться к ним индивидуально. Разница лишь в их ручке. Мой вывод выглядит так:

C:\cmdow.exe "VLC (Direct3D9 output)"
Handle  Lev  Pid -Window status- Image   Caption
0x1E084A 1 17740 Res Ina Ena Vis vlc     VLC (Direct3D9 output)
0x170762 1 17740 Res Ina Ena Vis vlc     VLC (Direct3D9 output)

Конечно, значения дескриптора будут меняться при каждом открытии VLC.

Как мне присвоить эти значения переменным в скрипте?

1 Ответ

0 голосов
/ 08 мая 2019

Поскольку вы хотите установить переменные (которые не нужны), вы никогда не узнаете количество возвращаемых строк, поэтому мы можем создать массив переменных со значениями:

@echo off
setlocal enabledelayedexpansion
set cnt=0
for /f "skip=1" %%i in ('cmdow.exe "VLC (Direct3D9 output)"') do (
   set /a cnt+=1
   set handle!cnt!=%%i
)
for /l %%a in (1,1,%cnt%) do echo !handle%%a!

for /lЦикл просто позволит вам использовать каждый набор переменных, 1 или 1000

...