como abrir o arquivo na janela na posição definida usando autohokey de cmd / batch?

1

Estou com dificuldade para combinar meus scripts que funcionam separadamente ...

Basicamente eu tenho um script em lote com o seguinte:

START "" "mpc-hc64.exe" "video.avi"

isso abrirá meu vídeo no mediaplayer. Por enquanto, tudo bem. então eu tive algumas leituras em SO e SE sobre como abrir a janela na posição definida via cmd / bat e descobri em respostas sobre AutoHotkey ( documentação: aqui ). então baixei um zip com o executável e criei um script AHK:

Run mpc-hc64.exe
WinWait, Media Player Classic Home Cinema
WinActivate
WinMove A,, 960, 0, A_ScreenWidth-960, A_ScreenHeight-29

isto irá abrir o meu mediaplayer no lado direito da minha tela se eu executar este cmd / bat:

AutoHotkeyU32.exe "script 1.ahk"

e agora eu precisaria combinar todos os itens acima em um lote que, se eu executá-lo, ele abrirá meu arquivo de vídeo no meu mediaplayer e no lado direito da minha tela. pode ajudar alguém?

    
por user902300 20.05.2018 / 00:26

2 respostas

0

Eu encontrei um caminho (na discórdia oficial AHK chanel):

#Persistent

mpc := "C:\T4\mpc-hc 1.7.16 x64\mpc-hc64.exe"
avi := "C:\T1\scripts\avi.avi"

Run, % """" mpc """ """ avi """", , , pid

WinWaitActive, % "ahk_pid " pid
WinGet, mpc_hwnd, ID, % "ahk_pid " pid

SetTimer, CheckWindowPosition, 100

CheckWindowPosition:
    if(!WinExist("ahk_pid " pid)) {
        ExitApp
        }
    WinGetPos, x, y, width, height, % "ahk_pid " pid
    WinGet, hwnd, ID, % "ahk_pid " pid
    if(DllCall("GetParent", "Ptr", hwnd, "UInt", 3) = 0 && DllCall("GetAncestor", "Ptr", hwnd, "UInt", 3) = mpc_hwnd) {
            if(x != 960 || y != 0 || width != A_ScreenWidth - 960 || height != A_ScreenHeight - 29) {
            WinMove, % "ahk_pid " pid, , 960, 0, % A_ScreenWidth - 960, % A_ScreenHeight - 29
            }
        }
return
    
por 25.05.2018 / 19:28
0

Você pode usar parâmetros para passar o argumento da linha de comando para o script?

Eu não testei este código abaixo, mas o conceito básico seria usar variáveis de linha de comando no arquivo .bat e no arquivo .ahk para capturar o que o usuário digita na linha de comando e passá-lo para ser executado.

linha de comando

C:\>launch video.avi

launch.bat

@echo off
AutoHotkeyU32.exe "script 1.ahk" %1

script 1.ahk

Run mpc-hc64.exe %1%
WinWait, Media Player Classic Home Cinema
WinActivate
WinMove A,, 960, 0, A_ScreenWidth-960, A_ScreenHeight-29
    
por 22.05.2018 / 05:13